Roadmap to becoming a Software Engineer
In today's world living with art to code will never let you down. Writing code doesn't require a degree it just needs passion and the ability to write code on a computer screen for long hours 😁
This is a roadmap which I am sharing from my experience that one can follow to learn enough to make it into the software development world.
Learn a programming language:
Pick a programming language and start learning the basics of the programming language such as Input/Output operations, loops, if-else conditions…
Python is one of the popular choices to start your journey since it is easy to understand and implement.
Some of the good resources to learn are as follows:
- GeeksForGeeks: https://www.geeksforgeeks.org/python-programming-language/
- W3Schools: https://www.w3schools.com/python/default.asp
- KhanAcademy: https://www.khanacademy.org/
Note: After selecting a programming language do not jump to another language without getting well versed with the first one. I remember one quote “Learn concepts and not languages”.
Explore Data Structures and Algorithms:
The backbone of computer programming is Data structures and Algorithms. It tells us how to approach a problem step by step and how to organize the data in an efficient data structure.
Most job technical interviews are comprised of a data structure and an algorithm round where candidates are asked to resolve a problem with an appropriate data structure and algorithm.
Some great resources to read and learn:
- GeeksForGeeks: https://practice.geeksforgeeks.org/
- Tutorials-Point: https://www.tutorialspoint.com/data_structures_algorithms/index.htm
- Programiz: https://www.programiz.com/dsa/algorithm
Books that I recommend📚:
- Data Structures And Algorithms Made Easy: https://amzn.to/3smHTIr
Practice Problem Solving:
Problem-solving is one skill that gets acquired by practising problems and understanding different patterns associated with them.
These skills help in the real world when requirements are given to software developers they need to provide an efficient way to solve them.
After learning Data structures and algorithms and working on some standard problems, one should practice problem-solving.
Some great platforms to perform problem-solving:
- Leetcode: https://leetcode.com/problemset/all/
- Codechef: https://www.codechef.com/
- Hackerrank: https://www.hackerrank.com/
- Codeforces: https://codeforces.com/
Books that I recommand📚:
- Cracking the Coding Interview: https://amzn.to/3M5QGq4
Build a project:
Now is time to build something that we can show and see the possibility of what code can do and share the finished project with our friends and family.
By building a project you will get hands-on experience and apply the skills you learned above. Also, it will be helpful during a job interview where you can discuss the project which will show your development skills as a developer.
The best way to start developing projects is to make simple web/mobile applications such as a simple ToDo List, TicTacToe a Library Management system… And after that one can start building more complex projects.
The main goal of this exercise is to understand the flow of how to implement a requirement in a final product.
Some resources for project development:
- Open Source: https://github.com/MunGell/awesome-for-beginners
- Development: https://github.com/kamranahmedse/developer-roadmap
Looking out for internship and Job opportunities:
After learning all the skills one should start looking for internships or job opportunities because it provides hands-on industry experience to a candidate.
In industry, there are some practices that are followed such as writing clean code, deployment cycles and much more. One can learn about how communication is done within a team, enhance their coding skills and get to know a company culture.
Candidates that come from non-technical backgrounds have a larger resistance to getting job/internship opportunities, but if they can show potential and can clear technical interviews no one can deny them the position.
Great Portals to look for Internship/Jobs(WorldWide):
- AngelList: https://angel.co/
- LinkedIn: https://www.linkedin.com/
No WhiteBoard Jobs: These are the companies that hire without a Data structure/technical coding round: https://www.nowhiteboard.org/
Note: There is no doubt Software developer role is one of the most lucrative jobs in the world right now with amazing perks and benefits, but it is not for everyone.
If you don't like to sit and stare at a computer screen fixing something maybe it is not the right choice to make a career in software development.
P.S: Not for demotivation 😄
This blog contains affiliate links to amazon. If you use these links to buy something we may earn a commission. Thanks for reading.
Till next time keep exploring keep learning…
“Programs must be written for people to read, and only incidentally for machines to execute..” — Harold Abelson