This guide was created to serve as an example of what the self learning process looks like. More specifically, it will discuss learning new programming languages, libraries/frameworks, and getting started with personal projects.
Let's face it, at one point or another (as a developer at least) you're going to be expected to have to learn a new programming language on your own. Lucky for you, dear reader, it is not a wildly difficult thing to do. There are several approaches one can take when picking up a new programming language (keep in mind this isn't every method, just some good starting points).
Using the official documentation for a programming language is typically a good place to get started. Most modern programming languages have a beginner guide on their website to help get started with the language.
For example, let's say we want to learn Python:
- Go to the official Python website
- Download Python if needed
- Looking at the navigation bar, to do Documentation -> Beginner's Guide
- Bam, a fairly detailed guide to help you get started
So these official guides can be, well, difficult to follow sometimes. Maybe they're hard to understand, or the website is just ugly. Luckily, there exist some very good guides written by other people.
Again, let's use Python as an example:
- Search Google for
python beginner's tutorial
- Wow, lots of options!
There are some pros and cons to this approach.
You have a lot more options here, meaning you can find something that works better for you and is better tailored to your learning style.
Down side is there are a lot of options, and it might involve going through a few tutorials to find one you like.
Similar to written guides that can be found through Google, many good video tutorials also exist on YouTube. You might see these when you do a Google search, or you can search on YouTube for good beginner tutorials.
Having to spend time learning new libraries/frameworks is a fairly common occurrence for software developers these days. Luckily, picking these up on your own is (usually) easier then having to learn a new programming language.
The same principles for learning a new language apply here:
- Official documentation is a good place to start
- Searching Google for beginner guides is also a good choice
- If videos are your thing, find a tutorial on YouTube
Starting a personal project is a bit more complex topic. An attempt will be made to try and generalize how to start a new project, but keep in mind this can vary from project to project.
It can be tempting to just think "I want to make something cool with Python", but usually that's not enough to get started. Try to think of something cool you would want to make, like maybe a Discord bot or a portfolio website.
Here are two approaches you could take to come up with some ideas:
- Think of a commonly occuring issue, or times you wish you had a program to do something, and make it yourself
- Google project ideas
The first method is more of a "go do it yourself method", where you can create new solutions for your own problems.
Googling project ideas is another good option, for when you want to make something for learning purposes but you just don't know what to make.
Now that you have an idea of what you want to do, you can get started. You might already know where to get started, in which case go do your thing. However, there is no shame in not quite knowing where to get started.
If you're struggling to find a starting point, use Google! For example, let's say we wanted to make a Discord bot and use Python for our language. Searching python discord bot tutorial
on Google will yield some helpful starting points.
If you get stuck somewhere while working, use Google to try and solve your issues. Googling things like how to do x in python
or error messages are great ways to try and work out your problems on your own.
I know some people feel weird about using Google to find answers to their questions, but know that even the best software developers do this.
This isn't a requirement, but you should be proud of what you've made, so show it off to your friends!
If there were one major thing that should be taken away, it should be that Google is a useful tool. Many developers use it for many different purposes, like fixing bugs and learning new technologies. I would encourage you to utilize search engines in your development flow if you do not already.
If you are a KSU CS student reading this, feel free to reach out to us via the CS or hacKSU Discord with questions/suggestions.
Happy coding!