Once upon a time, there was a junior developer, Alex, who was fresh out of college. Alex's new team was full of people with multiple years of experience. This made the learning opportunity exciting, while also extremely paralyzing with imposter syndrome. Imposter syndrome restricted the junior developer to use only the practices recommended by the other developers.
After a few years, Alex started gaining confidence in the technology, and was even pointing new/junior developers in the same direction... and that's when Alex realized what a terrible mistake had been made.
End Scene
Keep Up
You trust what you know. It's natural. New things are scary. But, here's the thing: Technology is changing every day, and if you're not keeping up with it, you're setting yourself up for failure.
What do I mean by that?
There's a lot of mainframe developers that are currently out of a job because they refused to look ahead. (I'm not trying to be a jerk here, it's easy to do..especially when you love something, to become so engrossed in it that you didn't realize everyone has moved on.) Are there mainframe developers today? Yes. Are there as many today as there were in the 80s/90s. NOPEEEE. So now, many of them are scrambling to catch up on 30 years of technology.
Do I want you to learn everything? No, it's not possible. But, you should be dabbling in the new things that come up, especially if it interests you at all. You shouldn't be shooing off emerging technology. Example: I saw someone state they weren't looking into Docker and the fad would fade soon. Okay.. Docker isn't fidget spinners. Docker makes developers lives easier, and many people are using it, so is that a good decision to ignore it? Probably not.
Get to the Point, Kim
The point is -- LEARNING IS FOREVER IN TECHNOLOGY, AND THEREFORE YOU WILL EVOLVE.
Questioning The Man
Now that we've got all that out of the way, here's the truth. Alex was blindly following in what was believed to be "the way". As Alex gained experience, and confidence, and took a step back... Alex realized that the goal post has moved. Alex was stumbling over shoelaces, making not only development exceptionally difficult, but also readability, and especially maintenance.
Learn from Alex's mistakes:
Look up
Ask questions to a diverse audience
Junior developers and Senior developers and Architects, and even sometimes project managers all have a different perspective. Sometimes there's a better way right in front of you that someone else will spot faster.Research alternative routes
Jump on Uncle Google, and see what others in your technology are doing. This is how I found MVVM in iOS and it's made development that much more enjoyable. Maintenance too.TRY alternative routes and find one that works for your team
It's okay to test drive things. You might not want to do it in your production app, but have a test app somewhere that connects to a web service and displays data. Play with the route there, then if you think it'll work for your project, port it on over.Every project is different, and NO SOLUTION fits all
Say it again for the people in the back NO SOLUTION FITS ALL.
PS: Alex is me... and probably you at one point too. ;)
Thanks for reading!
Top comments (19)
I remember a few distinct instances early on in my dev career where I mentioned what technology I was working in and somebody scoffed at me, telling me I was in a fad space. The thing is, in each of those instances, the people who said that were working in massively declining spaces and were extremely ignorant. At the time I sensed this, so I didn't let it get to me, but in hindsight I see it even clearer.
There's nothing wrong with being in those "declining" fields, because tech has really long tails, but only total ignoramuses dump their insecurities about the decline on newbies like I was. People with a bit more self-awareness and compassion give those default "You're an X developer, that is such a fad!"
It's perfectly fine to think a technology is a fad, but there are constructive ways to express this. The people who unilaterally dismiss trends are massively over-simplifying the discussion and being buttheads in the process.
Cheers to that!!
I love this. You make really important points. One habit that I've learned from having two older brothers, is to be religious about listening and absorbing others' opinions, but always take everything with a grain of salt. In other words, question everything because every other human is only going to have a small sample size of experience to pull from. This point was reinforced by Dale Carnegie in one of my favorite books "How to Win Friends and Influence People", in which he offered the following quote:
EXACTLY. Perfectly worded.
That book is on my reading list :) And bonus points for the Henry Ford quote - as a fellow Michigander & someone who shares his birth day! (There's some useful knowledge my brains held onto, ha!)
Whoa! You are too lucky. I wouldn't mind even a tenth of his brain, not to mention his birthday.
I cannot stress enough how important that book is for anyone in any job. It will help you to think of things that you already know, but have never really thought about (if that makes any sense).
I would buy the whole world that book if they'd read it. I digress, great article Kim! Glad I got to read it.
Regarding "Alex's" realization, here is an excellent talk by Dan North. Particularly the section on the "phases" of being a developer (called Dreyfus Squared). I would say that it could apply to any field really.
Essentially, we all more or less follow rules at first because they are the only guide posts we can see without the backdrop of experience. Somebody said use a pattern so I used it, even though it wasn't a fit. Experience brings with it a certain "compiled"-as-in-code knowledge -- or intuition if you will -- about the best patterns to use in a given situation.
That's why you can't really fret those mistakes. You and I will make them but it is a necessary part of learning and advancing a skill.
Sure thing, I guess I'm really just encouraging junior devs to question things more and figure out if there's a reason (x) is being implemented this way, or if it's because lots always been that way. I know it would have helped me out a lot sooner to poke my head up every once in a while. 😊
But completely true, our experiences only make us better 👍🏻
Oh absolutely. When I typed my reply, I think I skipped the step linking what I said with my agreement of your post. :) Definitely question the cargo cult. If you don't know why "this is the way we do things", question it and try something different. Even if there was a valid reason for using some awkward pattern/process, it obviously wasn't documented and that gives you a chance to rediscover it and propagate that knowledge. But best case, there was no valid reason and coding life improves. :)
As a more experienced developer on my team, I have recently started to ask new hires and interns what struggles they encountered, what they dislike about the current system and team and what they wish things could be. This gives them a voice and an opportunity to question why we do things. For us, who have been here longer, we gain new insight into things that we probably take for granted. Thank you for a wonderful post Kim.
That's a great practice! 👏🏻👏🏻
Great post! Fresh eyes and perspectives should be appreciated, not shut down by senior devs. The trend I see with junior devs is not speaking up out of fear of sounding dumb. But a simple "why" question is such a powerful thing.
The tech field is constantly changing, and you won't last long without a healthy curiosity of new technologies. One of my blog entries talks about my strategy for attempting to keep an eye on current trends. See tip 4:
dev.to/jlhcoder/tips-for-new-softw...
Keep writing! Really enjoy your posts! 😊
Exactly! I know that was me, I didn't want to be painted for a fraud, but instead did myself no favors because I really didn't understand why I was building things a certain way.
And thank you!!
As you increase your knowledge, you learn where the "fads" will actually settle. (Not that you can't be surprised, and you should definitely make sure your assumptions pan out.) I ran into this recently when I was writing up a blurb about a site I'd just converted to Vue. Sure, it worked great for that application, but I could think of several areas where a SPA isn't the right fit.
You hit on the biggest tech issue most people don't consciously realize - we work in an ever-changing field, and there's never really a point where you've "got it" and can stop learning. I started my career as a COBOL programmer - and, yes, 3 days ago, pushed my first Vue app into production. The only way you can coast is downhill. :)
The fads don't really disapepar, they just kind of keep evolving into something new. You need to be willing to keep changing technologies when you try something new. Not necessarily on one project, but each time you switch projects you need to upgrade you fad.
"upgrade your fad".. Man I really missed the mark on a great article title :D
Hello!
Maybe things changed in the last five years but this affirmation sounds very unlikely to me. As far as I know, mainframe developers are quite rare and in high demand, having stable and well-paid positions. In fact, one of the reasons to move out of mainframes is the labor cost!
Sectors such as government, banking and telco have a large infrastructure still based on these machines. Anyway, these platforms did not stagnate — see this new IBM machines for example). Nor are there an exclusive choice: in practice, these systems tend to interact with newer technologies. My bank Android app, for example, consumes data that come from mainframes through many gateways. Or see this amazing story of integrating some old systems with new tech.
It may be curious to us, but yes, this market is very much alive.
I’m not saying they don’t exist, I’m saying jobs are harder to come by with IaaS now. Many people lost their jobs because of it.
None the less, this is irrelevant to the point of the article. I was using it as an example of what can happen if you aren’t looking ahead every now and then. These jobs used to be everywhere, but the sheer volume is decreasing.
Love your writing Kim, esp. this intro 🙂
Thanks! Might have had some caffeine lol