First and foremost, I would like to congratulate you on taking a decision to become a Software Developer. The reason you are reading this blog says that you have a deep burning desire to become an extraordinary and professional Software Developer. Have the patience to read this blog post on how to become a Software Developer without a degree. It will change the way you look at your career planning. Though entry-level programming jobs without a degree are comparatively less, it is not impossible to get one.
I receive a dozen e-mails per day asking me to guide them on becoming a Professional Software Developer. So, I decided to write a blog post on this topic. Let me confess, whatever I write here are not just my thoughts. I have interviewed almost 150+ Software Developers and Trainers in the process of finding how to become a Software Developer from scratch. All the insights that I got from them have been put into this blog post.
No one has ever become a master or a professional overnight in any field. This is the truth. This is nature’s rule – evolve step-by-step. In each and every step, you are bound to make mistakes. The true learning happens through those mistakes. According to Malcolm Gladwell’s “10,000-hour” rule, 10,000 hours of “deliberate practice” is needed to become world-class in any field. Now, if your question is “How long does it take to become a Software Engineer”, the answer is “It completely depends on your learning speed and the amount of time you invest in learning and practicing”.
In this blog post, I will be guiding you step-by-step to help you become a Software Developer even without a degree. You can use this as your road-map for your long career in Software Industry. This blog post focuses on people who are starting to learn any Software Programming Language from scratch and looking at making a bright career in their chosen field. So let’s start step-by-step.
How To Become a Software Developer Without A Degree – A Step-by-Step Guide:
1. Get your basics right and make it strong:
The first step to becoming a Professional Software Developer is to get the basics right and most importantly make it strong enough that, we can build a strong career on it. Any building that stands tall is because of its strong foundation. Think of Burj Khalifa – the tallest building in the world.
There are 5 steps to get your basics right and strong. They are:
a. Choose a Programming Language
Software Development is through coding. You have to write code to get your computer to do what you want it to do. And when you say coding, you need a programming language. Out of 100s of programming languages out there on this planet, choose the one which you love to learn. The challenge with most of the beginners is to find a loving programming language. I understand. But, you have to figure out one for your learning. There is no one programming language, that fits for all purposes. There is nothing like one programming language is better than others. You can visit TIOBE INDEX as a reference to figure out which programming language you would love to learn. TIOBE INDEX is used by many across the world to figure out what to study to become a Software Engineer.
b. Learn and Practice Algorithms
You cannot become a software developer without knowing how to write great algorithms. In the world of mathematics and computer science, an unambiguous specification of how to solve a set of problems is called algorithms. Algorithms can perform various tasks such as calculation, data processing, and automated reasoning.
c. Learn from the best coach
Today, every bit and piece of information that you want is on the internet. That’s indeed a marvelous blessing. But, the downside of the internet is that the information is not channeled in order. The other disadvantage is that there is no guarantee on the correctness of the information that is scattered and lying everywhere on the internet. Here comes the role of a coach. The one who knows what is right and what is wrong. The one on whom you can always rely, when you are stuck in your learning process, thus saving time. Though self-learning is a great attitude, anyone willing to play big should definitely go in for a coach. This holds good for any field including sports, cinema, politics etc. Big players always need a coach, at least to help them focus on their goal. Think – Even the God of Cricket – Sachin Tendulkar needed a coach. So, if you want to become a Software Developer without a degree, you must go in search of a perfect coach.
d. Learn from great books
There are 1000s of books available on Software Development. I have noticed most of the beginners waste lot of time in finding a good book. In “Step a” above, you have chosen to become software developer using a particular language. Now to find a right book, visit amazon.com and search for books based on the programming language you have chosen. Out of all the books listed, buy the ones that have more positive feedbacks and reviews. Also do not forget to buy a book on algorithms.
Once you have started reading the book, don’t put the book down if you find any topic or chapter tough. Just move on. Complete one book and then move on to another. No single book can give you all the required knowledge. Learning from really good books will take your learning curve to the next level.
e. Practice, Practice, and Practice
Do not be overwhelmed by the amount of theory that you would have learned from great books. Professionals are doers. Professionals are those who put their theoretical knowledge into practicality. Practice each and every concept that you learned in the form of programs. Let your computer do all the talking. Practice all the example programs that are given in the books that you are referring. Every good book has plenty of unsolved exercises. Solve all the unsolved exercises. In the process of solving problems, you are bound to make a lot of mistakes. Trust me, your real learning happens here – while solving problems and correcting mistakes. This is where you evolve as a good programmer. To become a professional Software Developer, you first need to become a good Software Developer.
Once you feel confident about yourself, I would recommend you to solve problems and involve in the coding contest from the following sites. It would increase your coding skills by 10x.
There is no value for self-proclamation. Though you might be skilled enough in a particular technology, the competency has to be measured. Here comes the need for a certification. A genuine certification speaks about your programming skill set. For example, if you are an expert in Java, then, to become a Java programmer without a degree you are supposed to be certified by Oracle. To certify you as a Java developer, Oracle does not ask for your degree certificate. A genuine certification speaks about your skill sets 10 times more than you self-proclaiming it. Don’t you think so? Getting certified by an authorized organization has the following advantages:
- More chances of getting hired by a reputed company
- Helps in getting a promotion within your company
- Helps in getting better pay packages inside and outside your company
- Helps you stay updated with the recent technological advancements
3. Follow blogs and respond:
No doubt – Learning from great books, gives us a deeper understanding of the subject. Meanwhile, discussing and debating the topic with like-minded people would take our thinking to a whole new dimension that we would have never even thought of. You are not alone in the process of learning. 1000s of people around the world would have already gone through the learning process that you are currently going through. They share their understanding through blogs. Read their blogs. Not necessarily, you should agree with their opinions. Respond to their blogs in the form of comments. This brings in debate and discussion. A new learning happens through this process. Every human being thinks differently.
By reading and responding to different people’s blogs, you can realize how different technologies can be applied to achieve various goals. This I call as learning through other’s thinking. Also, if you feel, you have learned something new from their blogs, congratulate them and share their article as a way of thanksgiving. Only a true professional can appreciate another professional’s work. Make them your friends. Learn from them. Build a like-minded network by reading several other blogs. That is what professionals do. Think of any professional in any field of your choice and you will realize that, their network would be full of like-minded people in their respective field.
4. Participate in “Stack Overflow” and other Software Development Forums:
If you wish to learn real-time, solve real-time problems. Not necessarily, you will be lucky enough to go through all the world’s best software development problems. Yes. I call it lucky because that is where the real learning happens. Haven’t you heard – “Without pains, there are no gains”. This is where the world’s best programming community – Stack Overflow comes into the picture. You will find all the world’s best software development problems here – Either in the form of a someone’s question or as an answer to somebody else’s question. Either way, you will get to learn a lot from it. Become a member of Stack Overflow and start posting and answering questions. You get to interact with so many like-minded professionals at Stack Overflow. You can also become members of your technology specific forums to be more connected to your technology specific problems. For example, if you are a Java enthusiast, JavaRanch is a great platform.
5. Build something worthy:
By now, I am sure, you would have spent hours indulging in getting your skill sets right. It’s now time to put all your skill set to test. It’s now time to build something very substantial. This is a very important step to become a software developer without a degree. Gone are those days, when recruiters just hired people based on few basic interview questions. Recruiters now are in search for real software developers who are go-getters. Choose a simple project or any software application based on your technology and start developing it. Make sure, you incorporate all the language specifics, data structures, databases and frameworks in building the application. Beware not to make the application too complex. An ideal project is one which would take a max of 15 days time frame to complete. Having this project on your résumé would drastically improve the chances of you getting noticed out of the herd by the recruiters.
6. Go Open Source:
I have a student of mine Nikhil who currently works in the United States.He is a great programmer and one thing that you can learn from him is the fact, how he managed to become a high performing Software Developer. When I quizzed him about his practices that he follows to write good code, he attributed it to the open source community.
He, during the initial days of his programming career, used to spend loads of hours hacking the Linux Source Code. Thanks to Linus and the Open Source Community, the source code for the Linux Kernel is freely available. Nikhil used to read and analyze the code in the several modules of the Linux Kernel. He tried to understand each and every line of C code that was written. He started analyzing the reason behind the way the code was written.
He actively participated in the open forum discussions. He used to clarify his doubts with the open source community members. He observed them coding, he learned the practices followed by them, he started writing on his own by following the footsteps of his fellow programmers. He enjoyed doing it. Today he is a high performing software developer in one of the famous companies in the silicon valley.
My suggestion to you if you are serious about becoming a professional Software Developer – Read plenty of code written by other professional Software Developers. Do not get de-motivated by the size of the project from which you wish to read the code. Just start off to read. You need not be smart to read the code written by professionals. You become smart by reading it over a period of time. There are plenty of projects and codes available on the open source. A big chunk of code is in Linux Kernel itself. My strong recommendation to you is to explore Linux Kernel if you wish to understand and appreciate the power of C programming language. It is estimated that (at the time of writing this book), the total lines of source code present today in Linux Foundation’s projects are 115,013,302; the estimated, total amount of effort required to retrace the steps of collaborative development for these projects is 41,192.25 person-years; Put another way, it would take 1,356 developers 30 years to recreate the code bases present in Linux Foundation’s current projects. The total economic value of this work is estimated to be more than $5 billion (Ref: open source code value).
7. Become a Blogger:
Professional Software Developers are those who share their expertise. The best way to do it is via a blog. Remember, we all had once upon a time read others blog and learned quite a lot of things. Its now time for us to share our knowledge with others. Blog about something that is not available on the internet. Write about a new way of solving a complex problem. Write about a new technology that is emerging. You as a successful blogger can gain a wide range of audience who respect and trust you. If someone visits your blog and sees the insights that you have shared on a particular subject, it would be clear to them that you are genuinely an expert on that subject. Being considered an expert on a particular subject can get you career recognitions, awards. Beyond this, as an expert, you will the first choice of any company to be on their consultants’ list.
Hope this article has given you loads of insights to become a software developer without a degree. I wish you all the best in you future endeavors. If you have any questions or if you found my article interesting please do comment below. Share this article if you feel, your friends would benefit out of it.
Further Reading:[ Proven Tips To Write Job-Winning Resume For Programmers ]