Ever since I got my first developer job, my friends started reaching out to me asking how they can get started with programming, build projects, apply for jobs...etc. So I shared them the exact path I took to land my first tech job at a startup. Here I am sharing it via my first ever blog post on the internet.
1. Learn Typing
I said this to my friends many times, that is "Don't call yourself a programmer or a software developer if you don't know how to type on a keyboard".
.
.
.
Oh man! that sounded so rude :(
But yeah, I really feel that learning to type is a huge productivity boost even though there are many IDEs that help you with autocomplete features. I highly suggest you dedicate some of your time to learning typing, there are many resources out there, go check them out. Please don't skip this step.
While you are at it, I also recommend you learn some basic shell commands, it really helps.
2. Start with HTML & CSS
HTML and CSS are the skeleton and skin for any application you create. HTML stands for Hyper Text Markup Language, it is used to structure the content in your applications. CSS stands for Cascading Style Sheets, it is used to facelift your application by adding some cool colors, backgrounds, transitions, animations...etc
The reason why I suggested picking up HTML, CSS first is that they are very easy to pick up, there are many resources that make learning them easy. One other advantage of learning them first is, they will really help you know your learning method which is very important to know in your career. Here is how...
I am listing few of the best tutorials available for HTML, CSS on the internet. Try learning from them, pick one method and a resource and explore a few topics in it. If you find it difficult to learn, switch to a different method until you figure out what your learning method is.
Note: To practice what you learned, I found a website that is really helpful. FrontEnd Mentor.
3. Learn about Version Control (Git & GitHub)
Read what I wrote about typing? same goes for Git. Every aspiring software developer should learn how to use Git.
As a software developer, oftentimes you write code, save it, edit it and save it again. But, what if something goes wrong? how can you revert back your changes even after few days from the day you made changes? This is where Version Control really helps, It helps you track your changes.
Git is a modern implementation of Version Control, Github is a code hosting platform where you can browse your code and inspect your changes. Github really helps software developers as a portfolio/showcase of your work and let your potential employers know about your coding skills. So, learn enough Git, so that you host your code on Github. Go through the following resource
Git & GitHub Crash Course For Beginners by Traversy Media
4. Pick your first programming language
There are many programming languages in the industry, beginners like us always have confusion when it comes to picking up our first programming language. So, pick either JavaScript or Python and learn the basics well. They are very popular among beginners and in the industry as well.
It does not matter what language you pick up because at some point in your career you will have to switch between languages based on the kind of applications you build. So don't get attached to your first language, focus on learning the programming fundamentals well. I found the following resources useful...
Javascript: Introduction to Javascript from Codecademy
Python: Byte Of Python
5. Pick a framework based on your language of choice
Frameworks provide a set of tools that help developers build applications without re-inventing the wheel. I chose Python as my first programming language, so I picked up Django which is a full-stack framework. It is beginner-friendly and It has many things inbuilt such as user authentication, forms, ORM (Object Relation Mapper), admin panel, unit test framework and many more. So, it allows beginners to concentrate on the application and to have fun while doing that.
If you choose Javascript, you can pick one of the frontend frameworks (React.js, Vue.js) or backend framework (Node.js/Express.js).
6. Build an app to test your knowledge
Once you learn to use a framework, it is really important to build some projects to test your knowledge. It can be a simple To-Do app, a note-taking app like Evernote, a simple blog application, clones of your favorite applications like Medium, Twitter, Facebook...etc. Whatever you build, make sure you host your source code on Github and let the world know about your work by sharing it across social networks.
7. Algorithms
This is the step that many beginners skip including me, I did not concentrate on learning algorithms and improving my problem-solving skills. Yes, some startups do not care about algorithms, but it is very important to learn them if you want to land a job at well known companies like Google, Amazon, Apple, Uber...etc. You will see them in every interview you face, so go grab a copy of Cracking the Coding Interview and prepare for interviews.
Once you have some applications hosted on GitHub, have your resume prepared, update your LinkedIn profile and apply for jobs.
All the best, never stop learning...