Software Development is a field currently driving a lot of innovations in our modern society. This is because it has given humanity the ability to utilize digital tools aided by computing power to solve problems in different spheres. The disruption is almost outrageous and the pace at which this is taking place leaves the innocent onlooker gaping in awe.
photo credit : Adi Goldstein - Unsplash
The continuous growth and global disruption of different industries has made the opportunities in the technology sector to be ever expanding. As if we were not already aware of that fact, the recent outbreak of Covid-19 has made digitization even more obvious. Organisations who already had digital assets were at an advantage, while those were slow to adapt to digitization have suffered at the bleeding edge of change. Every industry is working at it's best to adopt technology inorder to close the gap between service and consumer. All this has been made easier and possible by software development. As a result, the need to carve a niche in this new ecosystem is now more obvious than ever.
HOW TO GET STARTED... *How do you get started in a sector riddled by accelerated change ?
photo credit : Kevin Ku - Unsplash
A few years ago I decided to start out in the field of software development. My motivation then was the need to solve problems. Coding is like a hammer and chisel, it allows you sculpt solutions for a world riddled with a deluge of problems - opportunities. I was amazed at how people built operating systems, websites, apps and even software for artificial intelligence. The power that it affords the ordinary man is incredible. The ability to sit at the comfort of your computer to create solutions that can serve the world. So how can anyone get started in this amazing field ? Lets dive in. Before diving into software development there are three basic questions that will help you accelerate your Journey and they are :
What are the problems you really want to solve?
What are the tools that makes that possible?
What are the platforms available for learning?
What are the Problems you really want to Solve ?
I spent several years beating around the bush because I could not answer this simple question. One thing you need to know is that Software Development branches out into different fields and as a result it can feel overwhelming. So specialization is key, because it helps you focus your energy in the right direction and accelerates your journey into proficiency and competence.
What problems are you really passionate about solving ? Are you interested in solving digital needs for businesses? Are you passionate about building great tooling for enterprises? Are you interested in building tools for gaming, education or the cloud?
This question enables you narrow the direction of learning and helps you chart your course as you get started on the journey towards a successful career. Jack of all trades become master of none. And the emphasis in Tech is always team work. Every organisation would employ you in order to have you fit well into their team and bring fresh perception. The business is never about building awesome websites or Apps its about effectively solving clients and costumer needs. And so your expertise is needed and more so the collective of team iteration. So begin by discovering what you are really passionate about solving.
What are the Tools that makes that possible ?
After you know what you are really passionate about solving. The next thing you need to do is to discover which tools effectively gives you the assets to solve the problems you are passionate about. This part kept me a loop too. Beginners keep asking questions like, what is the best programming language ? I did it too. I hopped from Java to C++ then to PHP then back to Java then I hopped to C#. Then later on I discovered Python, then I stuck around for a bit before juggling Javascript.
When you keep hopping around incessantly, you end up not developing the level of mastery required to solve a problem. There is not best programming language. Yes you heard me. Every language is best suited for different purpose and what makes that possible is when you have properly answered the first question. So if the problems you are really passionate about solving is for businesses and all that. You can then decide if it's by going into app development. Then you choose the tools that makes that possible. Are you interested in developing for cross-platforms or just iOS or Android?
Be language Agnost. Java developers might have shouted that Java is the real deal, until Kotlin showed up on the scene. It's never about the Language or tool but about the problems you really want to solve. For instance if you want to go into gaming C# and C++ or Javascript might be your biggest tools. Not even python or php. That's the point. Define what you really want to solve and then determine the tools that makes that possible and that includes knowing the languages, frameworks etc required for what you want to do. Now the next question...
What are the platforms available for learning?
Congratulations!!! you are closer to your goal of becoming a software developer. After you have clearly recognized the kind of problems you intend to solve and determined the tools that makes that possible. The next thing you need to do is to get your hands dirty. And there's no better way to do this than by recognizing the platform available for learning.
There are a lot of platforms available to help you get started. They include freecode camp, udemy, pluralsight even youtube and others. You can try these platforms to recognized what works for you. Every investment should count. And I will advice you follow developers who inspire you. Because a lot of them will share information to enble you in your journey as you grow. Tech Twitter is an awesome ecosystem, filled with amazing developers who understand the business of software development and they also constantly share rich insight for free. Github is another place to get code for tweaking. And stackverflow affords us the privilege to ask questions and you should'nt be surprised to find questions you have already asked... yeah! That has helped me a whole lot. So after utilizing these platforms what next...
POINTS TO NOTE You have started learning that language by now and tweaking it frameworks but here are some tit bits to note
photo credit : Patrick Perkins - Unsplash
- Learn by building Projects : A lot of times it's easy to pride ourselves in the number of tutorials we have covered. But the real deal is to learn by building projects by the side. Find a simple project related to the problem you are passionate about solving and find a tutorial to help you in the process. Whenever you get stucked Google the answer. Join communities where you are likely to find people who will help you solve your problems. As you get stucked and find ways to get out, you slowly build your level of competence. Build projects!!! that's loud enough. But its the best way to prepare you for what you are likely to encounter in a real work situation.
Mentorship : What mentorship does is to enable you get help when most sources seem to fail. Aside from helping you answer your questions a mentor inspires you to continue learning and push the bar. There would be days you would wake up feeling so depressed and lonely, but when you have someone you are looking up to they give you reason to keep going. If you can't get a mentor physically then you can utilize the media. What happened to Twitter ? Twitter has helped lives. You get to connect to professionals and they keep you accountable to your growth.
Share : Aside from learning. The second best way to improve is to teach others, share and contribute. Either an open source project, blog etc. Sharing helps you to reinforce your learning. When you share you can often get questions that compels you to think in ways you never considered before and that builds your confidence and competence.
I hope you become the next big thing and hit that dream, we are waiting to see you soar. Together we grow!!!