I Went Bankrupt… Then I Started Programming
Are you a novice programmer? How long have you been into programming? If you’re a newbie, this publication is just for you. Your goal is to become a professional developer, not to earn money, at least not yet. The money will come by itself. Money is a side effect of being good at anything.
Stop wasting your time reading endless publications on passive income, earning pennies on the side. Start growing and investing in your skills. This won’t happen overnight or even next year, but you have to be patient.
Would you like to live in the Canary Islands and work with an ocean view? Or anywhere in the world wherever you see fit? It’s easier than you think, but it will require commitment and dedication. Are you ready to change your life and start earning serious money? Hear me out.
Back in 2012, I was 27 years old. I was young, stubborn, and stupid. I was financially broke. The situation I put myself into was the aftermath of endless series of stupid decisions I had made. Instead of improving, I was chasing money and this lead me to my doom. I’ve wasted so much time… I could have become a good developer years before! At that point, I could have hundreds of thousands of dollars on my account. Instead, I had less than nothing.
Today I work for a €1bn worth startup company as a backend developer. I finally fulfilled my dream of working with the brightest people to learn from them. I earn more than enough. I can provide for myself and my family. I have my own home and a brand new car. I have a supporting wife and two wonderful children. It’s all because, at some point, I realized I have to stop being obsessed with money and start being obsessed with personal growth.
Let’s play roles for a moment. You are to become an IT client in need of hiring a programmer who will implement the project of your life, a source of income that will provide for you and your family.
I’m sure you would like to hire someone who can create the highest quality code possible. Easy to maintain and extend, fast, tested, and regression free, am I right? You would like to hire someone who could advise you on finding solutions and making decisions free from catastrophic consequences.
Would you hire yourself? Think about that for a bit, and consider your current strengths and weaknesses.
What is the definition of a professional developer? Is one defined by the number of known programming languages? Is a programmer with the ability to write code in three programming languages more professional than someone who knows only two? Does the number of years in the profession matter?
Let’s create a list of perks of a successful developer:
- Knows his programming language of choice well and understands its limitations.
- Knows good tools and can use them well.
- Can advise the client with confidence.
- Can write clean and extensible code.
- Is reliable, responsible, and honest.
- Constantly invests in his development.
The first four come with experience and can’t be taught overnight. Remember that you only have one life and the decisions you make today influence your future self. It’s not a sprint, it’s a marathon. The distance may be overwhelming but is finite nonetheless. Lao Tzu’s said:
A journey of a thousand miles must begin with a single step.
You will reach your destination one step after another. Pick a single programming language and stick to it! Be passionate, be hardworking, and make sure you don’t make the mistakes I did when I was younger.
Mistake 1: you are not looking for a 9–5 job
The bigger the company, the better. You are a novice programmer in dire need of any experience. Not only in programming but also in working with people.
Watching the entire development process from creation to sales, development, and maintenance is invaluable and will stay with you for life! Not to mention the friendships and contacts you will make along the way.
I started as a “programmer,” or shall I say an “amateur programmer”, in a small IT company in my town. Only today can I tell how much the job has influenced my professional life. It allowed me to learn and develop my skills.
Many programmers live off freelance work or develop and sell software on their own. You can take this route, but I would recommend that you find a permanent job. This job will provide you with the opportunity to develop, improve and learn while getting a solid income to cover the expenses.
Mistake 2: you are wasting your time
Already have your 9–5 job? How do you spend your time at work? Hope you’re not wasting it. I have wasted countless hours spending it on MMORPGs instead of learning! I can’t express how sorry I feel for myself.
Back then it was an easy way to get rid of boredom, and from today’s perspective, I can see how much I hurt myself. The job was quite boring. Occasional projects gave me a chance to gain experience, but not as much as I expected. Today I understand that these were just excuses on my part.
Work gives you an opportunity for personal development? Go for it! Otherwise, learn on your own. A new framework, project on the side, watch internet videos about Domain Driven Development, CQRS, distributed systems, clean architecture, testing, about software architecture in general. Read books, e-books, and blogs. Just grow your abilities.
You live in amazing times. The amount of knowledge available on the Internet for free is staggering. Only then will you understand what the Dunning-Kruger effect is:
Only after a while did I understand how ignorant I was. How little I knew at the time. This can only be seen in retrospect. Today I’m climbing this chart though it took me too many years to reach this point.
Confidence is ignorance. If you’re feeling cocky, it’s because there’s something you don’t know — Eoin Colfer
Mistake 3: you are afraid of changes
Don’t be afraid of changes. We, humans, strive for fulfillment, and stabilization. That’s how evolution made us, and there’s nothing wrong with that. This is why some people spend their entire lives doing the same job for the same employer. They are comfortable and do not want changes, they are afraid of them.
Changes cause discomfort. They make us leave our comfort zone. The comfort zone is the ultimate limit that prevents most people from reaching their professional heights.
Do you feel that your job does not allow you to develop? Look for a new one! Find a job where you will have to raise the bar. Keep raising the bar and your development will be exponential. What do you have to lose?
I know programmers who have been working in the profession for over ten years. They have learned nothing new during all these years. It is safe to say that they are not standing still, but are going backward. After all, time doesn’t stop, it is constantly moving forward.
Mistake 4: you are not learning enough
While regular work ensures personal development, you can never develop too much. You must constantly invest in yourself by reading, watching, and learning.
You’re not a native English speaker? Polish your English. There is a chance that you will end up in a foreign corporation with an international team of professionals and it will certainly be your common language. If you already speak English well, perhaps you could consider learning an additional language.
Learn design patterns, and algorithms, and try new programming techniques.
Learn related technologies useful in the life of a programmer: Git, Kubernetes, Docker, the basics of Linux systems administration, computer networks, security topics, and cloud services. You don’t have to be a specialist in each of these technologies, but it is important to know the basics in practice.
Choose a database and learn from it. It can be MySQL or PostgreSQL. Working with relational databases is essential. Knowledge of optimization techniques will be useful.
The time you devote to self-development today will bear fruit in the future. Knowledge acquired by yourself is worth many times more than the knowledge imparted.
Mistake 5: you are not living a healthy lifestyle
Regular work during the day, after hours until late at night? You have to stop. While you can do a night or two, working late and working out regularly is detrimental to you.
So what if you will earn a lot today if in several dozen years you will have to spend a lot more on treating your ruined health? Whether you like it or not, your brain needs rest. Knowledge is consolidated during the REM phase of sleep. To reach this phase at all, you need sufficient sleep. Also, try to exercise at least twice a week. In your career, you will spend endless hours in front of the computer. Sitting promotes obesity, and obesity will eventually lead to heart conditions and/or stroke.
You will earn a lot of money, you want to live a long life and enjoy it as long as possible. Don’t end your adventure with life at the age of thirty. And of course, remember that you can’t get your money with you to the grave.