How I learn programming
Learning to code can be a challenging endeavour, especially if you don't already have a computer science background. There's so many fields in software engineering such as web development, mobile development, machine learning, AI and so much more.
So before learning to code ask yourself what field in software engineering interests me the most, here's a list of all the fields and positions that you could pursue:
- Web Development (frontend or backend)
- Mobile Development (iOS or Android)
- Machine Learning
- Game Development
- Systems Development
- Data Scientist
Steps to follow
1. Find the right programming language
Once you've decided what field you'd like to enter, you must research and find out what programming language best suits that field. You can always google this:
The only problem with this is that you're going to get opinionated answers from different developers, so my advice would be to experiment and try out each programming language you get from the search results and determine which one you like the best.
Obviously, each language is designed to solve specific problems in computer science. Still, most programming languages you come across are general-purpose, which means you can design almost any type of software with them.
2. Learn the basics
Once you've decided which programming language to pick up, you should take some time to learn the basics of that language. I wouldn't recommend learning every feature because over time the more you use that language, the more comfortable you get coding in that language.
3. Build projects
Once you've picked up the basics, it's time to start building! Start with small and simple projects and try to apply everything you learned; the more comfortable you get, the more you can work on more complex projects.
4. Contribute to OSS
Once you're comfortable building, it's time to get familiar with how other developers code and how they layout their projects. In software engineering, there are many ways to solve different problems, so it's important to get comfortable with different coding styles.