WARNING: This post was written in nano, therefore readers descretion is advised.
If there's one thing that wasted my time and stopped me from
wanting to specialize earlier; it was trying everything that came my way.
And by everything I mean everything! The good thing is it gave me a lot
of exposure to different software stacks, and technologies; but at the same time
It feels like the time that could've went into honing my craft with
C programming was gone trying to be up with the new trends in software development.
One of the biggest pitfalls that aren't very apparent to us as developers is that the
industry can sometimes feel like social media frenzy. There's always that group
trying to one-up each other or a company claimig their stack is better than company X.
Best thing to do is just avoid all the noise, anytime you hear about new software, technologies or frameworks.
However, you also don't want to be late to the party if you where ever to want to be part of the so called new 'trend'.
NOTE: Nothing is bad about staying on the cutting edge; it's just everything is good with moderation.
The most practical thing I do lately is: whenever there's a new technology or framework I want to
keep my eyes on, I usually try to scope it out and study as much about it before even trying to
make or build something with it. For instance: I've been keeping up with
IPFS (Interplanetary File System), the
glorified p2p network framework/stack/library, I really don't know what to call it; correct me in the comment please.
If you're into blockchain technology, I like to say IPFS looks very promising and could very well maybe change the whole
idea behind digital freedom and user privacy while also ending the war of passwords and remembering logins.
This just an example but you see how scoping out can help you in the long run? The
bottom line is: don't rush into writing code, take your time and don't just start doing it
because everyone is doing it. If you're patient you will get your turn.
If I'm not first to admit to being egotistical at times; then well damn! Sometimes I catch my self
in the act and sometimes I don't see it. Most of us get into software development because
we love solving problems and that comes with the great reward and prestige of knowing you
Spoiler alert: you never stop learning and your code will never be
"perfect", because by the time you do that you've already lost the whole point
of writing good software.
Part of writing 'good code' from my experience I think it takes sitting down and saying: "Wow
this code is really shit; WOW! What was I thinking?". The more you have such experiences,
the closer you get to writing 'bugless' code. I say bugless very lossly because there's always
gonna be one more way to f#ck up, just when you thought your ran out of f#cks to give. SMH...
At the end of the day, learning to code is very easy; mastering it and finding how to craft something
special out of it is what seperates good developers from great ones. You can teach someone how
to read and write, but what they become after that is completly up to their own self rather than what
they were taught. A great law school can give you a great shot at becoming the best lawyer; but unless
you go out on your own and make something out of that, you will never be able to amount to anything. I think
you get my point.
As someone who loves to write and express my ideas through any avenue; it's safe to say,
that I get times where I feel like sh!t. We all have those moments; but it's what you do
with those moments. You can either lick your wounds and keep moving or sit in sh!t and cry all
day; cause there's more to where that sh!t came from--ain't that some shit?
On a serious note: it's a double paradox to think your work means something and not mean a dime at the same time.
As much as it's equally important to value the work you create no matter what level you're at;
it's also important to feel good and prestigeous about your work regardless of what level you're at.
Many devs give up early because they think that they will never be like the greates.
Just as much as you get moments where you don't know what the f#ck you're doing on the computer, late at
2am trying to finish that last assignment; think of where you could be if only you realize how great you
are as person and an inteligent being. The fact you found the courage to do what many would call crazy and
difficult; proves the point you're an insane badass; and last time I checked heroes don't run on zero.
So please give it a 100, but also remember to keep it a 100!
I call my self a prolific writer not because of what I do now, but because of where I know I will be if
I stay the course. F#ck what other people think, remeber at the end of the day; you can't get critized by
someone doing better than you for they have no business in trying to break your down when they already have their
'It's only the liars that cut the tongue of those that speak the truth in fear the real truth will come out'
So after codecademy for 2 years plus; I actually was a lot less confident and reluctant to want to learn something
new or work on a real world problems. Talk about first world problems. I was so used to being shown the way and doing as the instruction manual said.
Please, when you become a proffessional software developer you don't want to be a glorified DIY'er; it's not a good look considering you
spent years learning your craft and to only find out you need to have Google & StackOverFlow support 24/7. Yes it's not fair that at work
we're expcted to create a rocket ship over night with some speghetti code and some patches from StackOverFlow that you don't fully know
what it will do.
Yes it's okay to need help and that's perfectly fine, but at the end of the day it can't be your be all and end all. Otherwise you're just as replaceable as
the next broken door knob.
On Codecademy I thought I'd learned everything I needed but because I was lacking practice and applied theory I was worse than someone
who hadn't even learned a damn thing to start with. It was embarassing...Maybe this isn't something that happens to many
other people, but the bottom line is don't stay in the same place waiting for someone to show the way. Go out there; break things
and learn to fix them while you're at it, that's how you learn to be a good developer.
Had someone told me this earlier I would be way better off today than yesterday; but I learnt it so you don't have to.
By first year college I thought I knew to the last 'T' what I wanted to be or where I wanted to be go as a novice developer. Today I
can't say I have the answer; but I have some clarity on what I enjoy and what I don't enjoy. For instance this is just my own opinion,
but I dislike any language that makes it so easy to write but a nightmare to debug if things go wrong; therefore I would rather learn a
language that is both explicit and well versed in how the community handles it.
personally. It gives me an edge in the high-level world and a great ground of stability in the low-level department. When first starting out,
it's best to try everything because sooner or later you will learn what you like and what you don't like. Not only will this be a good way to set
yourself in the market while still keeping your self sane, it will also save you from a lot of headaches.
Yes the trick is to learn something marketable; but truth is if you're chasing the bag all the times, that's what you have to do. If you value your
mental health and sanity, it's best to stick with a language and software stack that you're passionate about. There's always a company hiring that's
looking for the skillset your have. Yes some are more available than the others and some not so much, but once you find it; take it
to the next level.
Don't let your title limit you.
I think sometimes as developers we overwhelm ourselves with a title and job 'hats'. At one of my co-op placements I was
doing things that were way out of my suppossed title and at first it would confuse the sh!t out of me; but sooner I started to notice this was
a good thing. Unfortunately that co-op ended and they were great people; but what I realized from this experience was that in order to remain
employable and marketable, you need to have a good solid exposure to a little bit of everything.
When the adults don't want to welcome you into the world of adulthood you have to invite yourself to the table and show them who you are. If we all waited
for our parents to tell us when it was no longer okay to sh!t our pants; where do you think our society will be?
Personally I don't think when you hire a junior developer, you should call them 'junior' because that only keeps them from developing and wanting to go further
if you put the title of being a junior, because junior's are like kids; they always need a caretaker.
The last one is pretty obvious...
How many of you have thouhght of learning a new framework or technology just because your manager wanted you to do to, or because
there was new prospect in town looking to shaft some people to better positions? They say if you stay ready, you don't have to get ready.
Let me keep is plain and simple; in life we all have time, and then there's us.
We can either do something with the time we have or the time we have will do something with us; as a developer you're no different.
I understand that there's different milestones to be tartgeting as a developer as you aproach certain levels, but the key is to keep yourself
fresh and able on your feet, because if you get too comfy, the wave of tides might come and wash you over with your whole career.