I know, this sounds like I have the secret formula to becoming a developer, but it's actually what I, in my experience working with teams and my personal growth, find important to accomplish that goal.
Some things that most people ask when they find out I'm a software developer are: "You must be so intelligent", "Can you hack a Facebook/Instagram?" (I know I'm not the only one, right?) and the most important one "How can I become a developer like you?" and I kept wondering about that. Here, I will name what I think are the most important to accomplish that goal.
1. Think out of the box
I know, it's a cliche, but it's RIGHT! Developers must think out of the box to build the software that solves users' problems. This is because when developing we have to think like users, clients, developers, and every single one of the actors that will use or participate with that software.
Most of the solutions that clients ask us to build or the ones that we build as entrepreneurs must be thought out from a perspective no one has ever thought of, or even add something new to aggregate that key point to your application to make it more appealing to users.
2. Always stay hungry for knowledge
If you're about to pursue this career, you have to know that it changes a lot! In one moment vanilla PHP is the best you have and out of nowhere something comes and becomes the new cool stuff to use and you have to learn it to try (Let's be honest, we try our best but technologies changes faster than us) to be "surfing the wave" and to be up to date with new languages, frameworks, libraries, and a lot of things that will help us find good jobs or become better at ours.
There are a lot of websites that we can access to keep track of the new stuff: Medium, Hashnode, DEV (DUH!), and really huge etcetera of places where you can find more information (If you wanna know more, I recommend reading the post of my good friend Alberto Yanes about 5 tools to keep up with tech).
But continuing in this topic, I highly recommend finding a language you love and become really good at it instead of trying to be like my people say, "an ocean of knowledge with 1 cm dept".
3. We are a community
One important thing to understand is that we're not alone. There's a huge possibility that one problem that you have with your code, someone else around the world had it too and probably it's been solved. So, ask the community, see other developers' solutions, don't be ashamed to don't know something, this is completely normal. Also, keep asking your more experienced developer friends about your doubts and problems, I'm sure they will help you out.
4. Software Factories are a good way to start
Software factories allow us to work with different teams, projects, project managers, workflows, technologies. So, use this as a way to fully understand how to work with teams, and different technologies, the difference between a really great client with all his processes and fully organized and clients not so great that will ask you to work with the minimum and want everything in no time. I know the last part doesn't sound too appealing, but trust me, it's really useful for your personal development. Then, when you gather some experience and knowledge, you can move to a product company, they're usually less stressful.
5. You have to love it
This is the most important one, to be a developer you have to love it. Because it's really stressful and frustrating, can be repetitive sometimes, you can work with clients that have really boring projects, you have to keep track of new things, always keep studying, some clients will be a pain in the ass or even some managers. But, it's a great thing to do when you do it with passion.
When writing this post I remembered the words of Anton Ego from Ratatouille:
Not everyone can become a great DEVELOPER, but a great DEVELOPER can come from anywhere.
Anton Ego
Yeah, I paraphrase a little, but it's the same idea.
6. The devil knows more by being old than by being the devil
This is an old saying from my country, but it means not being stubborn when someone more experienced gives you advice. Higher seniority developers can know best about some things because they were in the same spot you are right now and don't want you to hit the same wall.
It's ok to don't know something or to ask for advice if needed, and who is better at that than your Senior/Technical Lead/Software Architect/CTO? Remember, they have the same goal, to finish the project in time and with a quality software.
Well, this is it. Do you have some key points to add? Please, put it in the comments below.
I do this completely non-profit, but if you want to help me you can go here and buy me a coffee ;)
Top comments (11)
"3. We are a community"
Exactly!
This is the part that I believe it's hard to understand, but it's important to know that we are a community and we have to help each others!
In many cases or better yet "on many projects" 1. is "You're developing system for people to make their lives easier not to look smart". I've seen that learning all those patterns, FP principals, theoretical physics and math is mainly to talk about it and look smarts. Computers were made to automate stuff not to gather limited number of IT people so they brag about who knows more. You can really feel this importance when you work in non software company. Yeah non-software companies still higher people to develop some of their own ideas and then all your talks about "immutable" or "builder pattern" go through out the window and the only important thing left is can you deliver something when users "clicks button".
Great lecture, Thanks a lot, i really enjoyed it
Thanks, man!
Love the image 2b || !2b ... nice...
Hahaha thanks!
this is so useful, I really needed to read something like this, Great Article, will share this asap.
Thanks! <3 Appreciate the comment! :)
Yeah I know right? But stated after to talk a little about the good things to pass to the not so good about it and why you should love this career
Point 6 is just so true!!!