Over the last several years, The increment of the jobs in the programming and software engineering section has been noticeable as these fields became familiar to many people and most of them became obsessed with them and due to this increase, the learning resources became direct proportional too as many of road maps, tutorials and articles started to pop-up so, we decided to help you by summarizing a bunch of steps for starting in programming and software engineering field.
1-Learn about the basics of hardware:
Most of you will wonder why would I learn about the hardware to be an expert in software!
Basically, you should about the history of computers from the past till now and how do the complex parts of a computer work together to serve you so, you can be able to understand how does the compiler and the interpreter convert your code to understandable language to the processor and why is the code even necessary.
We recommend that you take one of the below courses:
-Technical support fundamentals: https://www.youtube.com/watch?v=awLnur5Yt9o (Free)
-CompTIA A+ Certification free course: https://www.youtube.com/watch?v=2eLe7uz-7CM (Free)
2-Learn about problem-solving and computational thinking:
Learning about problem-solving will be very helpful in your programming journey and it will be a perfect kick start to be a professional programmer as the most basic and famous programming and coding practice is from solving problems using codes Furthermore, most of the international competitions like the international olympiad of informatics (IOI), Google code jam and IEEXtereme are based on solving problems with codes.
We recommend that you take one of the below courses and videos :
-Enhancing problem-solving skills: https://www.youtube.cFom/watch?v=WUIZBnfYxSA (Free)
-Computational thinking for Problem-solving from University of Pennsylvania: https://www.coursera.org/learn/computational-thinking-problem-solving (Free)
3-Learn Coding with JAVA or C++:
Why Java or C++? A lot of people asking this question nowadays and the answer is very basic, most if not all of the top leading companies like Google and Microsoft require one or both of them as they are from the oldest programming languages and most of the large systems wok with them or has been built with them besides that, learning one of them will facilitate the whole learning journey for you as they have more complex syntax than the other languages.
We recommend that you take all the below courses:
-FreeCodeCamp C++ course: https://www.youtube.com/watch?v=vLnPwxZdW4Y&t=1244s (Free)
-C++ data structures and algorithms: https://www.youtube.com/watch?v=ucfsFmjScpQ&list=PLB7ZlVMcmjIDsjPQfjxT-_ClgEtr-udS2 (Free)
-FreeCodeCamp java course: https://www.youtube.com/watch?v=grEKMHGYyns&t=32963s (Free)
-Java practice course: https://www.youtube.com/watch?v=orUTq3CahRE&list=PL59LTecnGM1MMSBPiLN4aMwM7DcnVld0s (Free)
4-Choose specific minor field and start learning:
After learning about the basics of programming and software engineering, you can start to choose a specific skill to learn like Mobile applications development, Web applications development, Database management, or penetration testing and after learning, you should practice by building projects to enhance your skills and at the end, make sure to repeat this step when you are done or finished one track.
There are some resources to learn more about different minors and tracks:
Good luck with your long journey!