How can you develop yourself as a developer?
I had a talk yesterday with a friend Processor prok james a big fan of Java. A great developer I respect a lot. Our talk was on the life situation of most software developers and designers in Africa at large and in Ghana specifically.
I have tried several times to help my brothers and sisters in this field to understand the reality I have faced and that I am still facing from the start until now through this blog. And I feel like the more I do, the further away they go.
And, you know why?
Because we don't like learning.
When we look at our society, most developers/designers are the ones who suffer the most. We are even seen as mad people who have lost their ways in life. Do you remember how many times people approached you with such feeling? Even your family members. Do you remember?
We can explain all this
Software development is a very complex field full of all sorts of disciplines. It, thus, takes a considerable time to be noticed. Unfortunately, my dear brothers and sisters don't have much time.
We are undermined with two antagonists ideas
- We want fast and easy money
- We don't have time to work hard for it
I have had the opportunity to coach/teach a few people, both francophones, and anglophones; individuals or little classes. In most cases, students are super-excited many days before the class and become dull after the first class.
Why dull?
Yes, because they have realized and concluded that the fairy tails on the computer and its science are not as they expected. This looked so easy to make quick money. But, it just started to look harder than scamming one's fellow.
So, we move to something that can fetch fast and easy money
I myself did that. But, with a big difference. I was doing electronics, then moved to C programming because I needed to program my circuits. At that moment I realized I needed a few equipment and tools. So, I needed money as well. Then I learned I would quickly create a website and make fast money. After that, I started learning HTML, then Javascript, then PHP, then CSS, to become a frontend and backend guy,... this took me to where I am today.
Contrary to my case, most of my people today would prefer an easier path: stealing, robbery, scam.
The trap
One thing to realize when we decide to do something which could help us reach our main goal is that we usually end up remaining there.
Why would you like to leave the winning team?
I have never been able to go back to electronics. I have not forgotten it, I do play from time to time, but I can't call myself a professional.
Be careful with what you choose as a rescue career. It could end up being your final career.
Back to software
I usually see three main steps when you learn software development. This is an overall view. Under each step are so many things to learn, discover and realize.
The thing with software development is that it's deceptive at the beginning. In most schools, books, or training sessions you will be most likely be presented/introduced to programming languages than programming itself. Then you waste so many months, why not years, trying to figure out how to crame all the symbols and functions specific to those languages. Weird enough, you won't learn only one, they will try to show you many at the same time. I understand them, they need to sell the buzz and live. Since you too, you are looking for the titles and grades just to flex with. Some guys need to sell it to you. That's how the business runs.
In general, there are at least seven things you need to know in each programming language that's not necessary for developing real software:
- Basic syntax
- Functions and libraries
- Frameworks
- Algorithms
- Data structures
- Design patterns
- Programming paradigms
These practices can be found in almost all programming languages. Usually, most people hang themselves on the third: frameworks. That alone can help you have jobs. Google "Laravel job", you should see an endless list of job offers. But, on the other hand, if you want to create a framework, you might need to go further to the remaining elements.
When you get to the third chamber, as mentioned above, you start to dig into the deepest parts of programming. Not only you need to know the remaining elements, but you want to understand how the computer itself is made and how it works in its intestines.
Interesting enough, at this stage, you might have written so many programs, little or huge, no matter what they do. Probably, you might have also tried many other languages. You have surely had the opportunity to read other developers codes. You might have also gotten the chance to work with businesses or individuals on many projects.
And, at this stage, you might have realized that software development is beyond just a programing language.
- It's about reasoning
- It's about project/people management
- It's about real problem solving
- It's about continuous hunt of issues
- No program is ever perfect
- Programming language doesn't matter much on software quality
- Need for Maths, Physics, geometry, and more start to become inescapable
Programming starts to be like Yoga, Sport, kung-Fu, ... a real intellectual activity.
On the way, you start to face the challenges of a teamwork, tooling, DevOps, code quality issues, code beauty issues, etc. In fact, some people even decide to remain specialists of one or more of these disciplines. You can also be one.
Being a developer is not just code. It's all I just mentioned and much more on top.
Now let's answer the question
How can you develop yourself as a developer? While this may sound discouraging to many, this is the hard way of saying it. All these steps mentioned above are not mandatory before you start to make money. In fact, only a few programmers try that path. Just like I was saying with the frameworks, you can already do amazing things by just understanding very well the basic use of a programming language.
- You can get a job of a junior developer
- You can create/maintain websites for individuals and companies
- You can create inventory management applications for small stores
- You can create little students management applications for creche/KG schools
- And much more
The challenge usually is to get time to learn while we keep on surviving by making little incomes. In countries where the field is well known and respected, people are ready to sponsor you in exchange of small tasks. Companies are ready to hire you for part-time jobs. So many freelancing jobs are available.
But, here we are. Those things are very scarce in these our areas. So, here are my suggestions:
- Create a blog and share your route. This will open many doors for you. You can make an extra income with ads or sponsors
- Learn how to create websites. There are many jobs of all sizes in that field
- Train people in your area. Set a cheap price, and make the courses short
- Organize little meetups with a little entry fee
- Learn a bit of graphic designing. That will help you to create call cards and flyers for people
- Mingle with some friends who have offices, Internet connection, or equipment. Sign a deal with them. They allow you to use those in exchange whenever they need your input you provide it.
- Create a personal and virtual business such as an e-commerce website. You can sell ebooks, stickers, t-shirts, tutorials, etc. Personally, that helped me complete secondary school.
- Keep learning, people are ready to have you in their businesses because you love learning new skills
The key in this technique is to learn how to live with the minimum while you get yourself ready for the big picture. This is very important to keep in mind. It will not make you rich. It will only help you survive and remain on the track.
A plage on our culture
We have dangerous sicknesses within ourselves:
- Hatred to share knowledge with others
- Selfishness; those who get a working solution keep it for only themselves
- Pride. With little knowledge, we already start to claim the crown. Hardly we reply to others comments.
- Dark and blind laziness. We are ready to copy other people's snippets, but we don't want to know how they did it. After all, they are there to do it again for us.
Try to find a cure to those within yourself. It will help you on the path.
What do we conclude?
Hmm, let me not keep you anymore with conclusions. You need to go back to learning and strategizing your next move. Start that today and now. Let's see what it gives in the few months to come. Let your friends also know about it, that's how we grow together. Good luck.
Cover picture by pixabay.com