How to Become a Kick-Ass Developer!
So now you’ve read the first article: How to Find a Technical Co-Founder, you should have decided whether you want to become a kick-ass developer or go down the non-technical entrepreneur route. If you haven’t read that article, I highly recommend you to! Building a tech product can be challenging, and this article is a guide for the journey. The article you are now reading is similarly designed, but to help you become a better developer. So, without further adieu, let’s dive in.
1. The Mindset
Having been a developer for 3 years now, I’ve realised the recipe for success includes several factors: one of the most important being the right mindset. Why, I hear you ask? Well, the first reason is: Programs are powerful. Even one line of code can make a huge impact, and so, you want to be clear when you write programs. Every line, every decision you make, needs to be justified and well executed because otherwise, when you fail (and you will) you won’t know where you’ve gone wrong. I’ve experienced this myself, and learnt it the hard way. You’ll try random things, get stuck with no-one to turn to, and most probably, you’ll give up (it’s not fun). So, be critical and take great care with what code you write. Just one missing curly brace, semi-colon, or subtle line of code is enough to crash your program or clutter up a codebase.
Also, being a good programmer is much more than having a talent for problem-solving: it’s more like an art form, like playing an instrument. You’ll learn different notes, and techniques, and then you’ll try applying your knowledge. You will learn ONLY by doing and most importantly that means anyone can do it! If you’re lucky, you’ll get it right the first time, but inevitably, most of the time you’ll be faced with failure. Programming skill takes time, and only develops through trial and experience. So remember, there isn’t any one perfect method of writing good code or building a product. Often, there are different approaches, and adapting your knowledge to a particular situation and justifying it well, is what makes a good programmer. You as the artist can choose what canvas, what technique and what medium you’ll use to construct your masterpiece.
Remember to pay attention to detail, and learn through iterative theory, practice, and feedback cycles. Why? Because you have to keep learning and improving, and this is the most efficient way of doing so that I have tried. You’ll have to be realistic in the short-term because there’s no point trying to build a complex application without knowing what a for loop does. Imagine if you try building a skyscraper before you’ve even laid the foundations… it’s just not going to work. Similarly, start from the basics and build on your knowledge from there. Evaluate your current familiarity with the language, then gradually move on to the more advanced topics.
Being a good programmer takes dedication, passion, and hard work because there’s just so much to know and to learn. But it’s not hard once you get going. If you keep building things, don’t give up and have faith in your abilities, you can, and WILL get there if you are patient. This is what I mean by having the “Right” Mindset. You need to always stay positive when trying to learn programming (it’s true for any new skill). Often your state of mind is reflected in the quality of code you produce. So, when you get stuck, instead of just trying random things and praying something works, try to always program with purpose because you’ll learn much faster that way. You need to really understand why you’re doing something, in order to ever get good at it. You’ll only improve if you keep an open mind, and stay focused on what is absolutely necessary. So, don’t delay, just keep justifying what you implement, try different approaches, and you’ll improve as you go along.
2. Commitment to Code Quality
Writing a program which is merely functional is not good enough if you want to improve because even though it gets the job done, you’re going to struggle in the long-term. What happens if you want to add a new feature down the line? If you change one section of your program, it might affect other sections of your application. How and what sections do I need to change? If your program doesn’t have an architecture, then you’ll waste time debugging to find what you need and fix issues. Also, as inferred in the previous section, clean code requires succinctness, expressiveness and structure. Clean code is essential to improving your skills because it is what is expected in production grade products, and has the benefits of a reusable, flexible and maintainable codebase. So you need to put in the effort initially to learn about good Object-Oriented Design, Design Patterns and (for iOS) Protocol-Oriented Programming. You can learn about design patterns and clean code through textbooks or online courses (there’s loads of resources if you know what to look for). If you mix knowledge of the language features with design skills, then you’ll have a killer skillset when building programs. You’ll have risen above the plethora of mediocre developers who just did a Udemy course to learn programming and who dive straight into development without any idea about what they’re writing. Do the hard thing first, and then it will become easy. Learn things the right way, from first principles, and always be open to advice and feedback on your skills. Nobody expects a junior developer to know everything, so don’t worry what anyone thinks of you. Ask questions continually, and stay committed to good quality code. This habit will be beneficial in the future, if you ever plan on launching a larger-scale tech product. Later on it will help filter through developers when hiring, by evaluating their answers about design topics. Often the best developers are sticklers for the details, and you can tell by their code quality and knowledge of design, the level of their experience and programming ability.
3. Confidence
The other barrier I have seen in myself, and other junior developers is the Confidence Barrier. It is a widespread problem among many developers starting their career, yet no-one does anything about it. Many people want to become good at programming, but they have wrong beliefs like: “I can’t do it because of …”, or “I tried last time, but I have no idea what went wrong, so I’m a bad programmer and I should quit while I’m ahead..” They get intimidated by the confidence and perceived skill of senior developers, and they start doubting themselves. So, when those self-doubting thoughts come up, and they often will, you need to be positive and challenge them. Face the problem squarely, head on, and research the area heavily to justify your next steps. If you view the problem like you are an expert developer who has the knowledge and ability to solve the problem, you more often will solve it in the end. It’s a mental game which you need to be aware of and play strategically.
When you have confidence in yourself, you’ll be able to try things on your own and you’ll improve your knowledge much quicker. Often by taking a step back, ruminating about the problem for a few minutes, and then returning to it you will add one extra line which magically fixes the issue. Having that right perspective only comes when you have confidence in your abilities, and can see the problem for what it is. So, it is possible to be confident in your abilities, because the more you try, the more you’ll learn, and the better you’ll get. Don’t get discouraged if you can’t solve a problem. Read around the topic, read the documentation, and try and try again. It can be done, and I believe anyone can do it.
“I have not failed. I’ve just found 10,000 ways that won’t work.” — Thomas A. Edison
If you are patient with these techniques, you’ll soon find that you will no longer need to find a technical co-founder and you can launch your tech product using your own skills!
Thanks for reading, I hope you’ve found the article useful.
Stay tuned for the launch of NextLevel: The networking app to find co-founders and business connections. We aim to connect junior developers looking for experience, with entrepreneurs looking for developers. Sign up for the beta today at: www.nextlvel.com!
Also, I’d love to hear your story so far, and see if I am able to help in any way I can. Feel free to contact me at: hello@nextlvel.com.
