Before we begin, I'd like to congratulate you on this beautiful path you've chosen; Software development. It is indeed a long journey that has its rewards but also comes with its pitfalls as with anything around you. So, what is software development?
"Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components."
Quite a mouthful, isn't it? In simple terms, software development may be described as the process of writing computer programs with the purpose of solving real-world problems. Having chosen to take a step into this so-called 'realm of weirdos' as some would describe it, here are a few pointers that can be of help along the way.
Choose one language as you start and stick with it.
I cannot insist on the importance of this one key pointer starter developers need to get. I know you've probably looked around and seen the amazing things a certain programming language can do, only to look back and see another cool feature from this other language. Stop. You won't get any better by ogling the vast library of programming languages in existence. Trust me, they are quite a number.
Rather, other than looking around at other people's projects and doing a
"Hello world" in many languages, choose one, just one. You start pushing your limit and the limit of your tools when you focus on one thing: one framework, one language, one project, etc. And you will get deeper knowledge along the way. Resist the urge to become a jack of all trades and master of none - at the start
Get the basics down.
Before creating a house on quicksand, get the basics down. This would likely be going through the documentation of your language of choice. Get the nitty-gritty details at your fingertips. Know the basic syntax, how to create basic functions, how to declare variables, work with OOP, and the likes. Learn the underlying concepts and algorithms. Remember, languages and frameworks change, but the algorithms will always remain. It is bound to save you a lot of time as you develop your project, which brings me to the next point.
Create a real-world project.
It doesn't have to be the 'next google' or the next big thing. This is a marathon, not a sprint. Start small. Create something that directly impacts your day-to-day activities. For instance, as a first project, I created a simple house chores timetable with python. It was an excel sheet that would change every week it was run to suit our needs at the time. Having this on my local computer, the next step would have been to mail the participants of the table the week's chores. Simple as that. With this, I learned some OOP concepts, interacted with excel, and finally got to send an email with python!
In essence, learning never stops. There is never a point where a software developer can say "I've just finished learning C!" and with pride stash it somewhere in a closet as a finished product. It never happens. To show just how true this fact is, Dennis Ritchie, the creator of C , when asked where he would scale himself as a C programmer on a scale of ten gave a seven. I think you can get what this means.
Get in touch with the development team around you.
You should have gotten a few things up your sleeve by this point. So what next? Collaboration.From github to bitbucket,get team you can work with,peer to peer coding. Build things together, give each other challenges, review each others' code. Get to know what you can do more to improve while helping a friend out write better code.
As a checkout for the post,learn. Learn learn and learn. As a constant reminder:
The only constant in software development is change.
There is always that deprecated function, that new library to make your work all the much easier, that new way of declaring functions, variables, you name it. It's as they say, "Staying offline voluntarily as a web developer for a month or so would be a mistake. " Why? Because the needs in web applications and user preferences are always changing. This feature today is likely to be shunned tomorrow. So learn. Always be on the lookout and don't be afraid of change.
PS: For those still using Python 2.x, security updates stop in 2020.