loading...
Cover image for How to not be a dinosaur.
MyOnlineStore

How to not be a dinosaur.

dreamdealer profile image Johan van Tongeren ・9 min read

This is the story of how I became an experienced senior frontend developer and how I had to start all over again. How it felt like I had to start all over. How to learn. 

This story is mostly about learning React, but might apply to other frameworks as well. Heck, it might even apply to completely different areas of expertise.

What happened?

It is 2019 now and I am 37 years old. I have been working for 15+ years professionally as a web developer and web designer. After high school I went to design school and learned to be a designer. But I have also always been interested in coding. In the early 90's I was already writing code in GW-Basic. I can recall writing my first lines of code in the last grade of primary school. Later I learned HTML and even a little PHP 3. In design school I also learned Flash and OOP in Lingo. When my class got the task to code a simple dice-rolling program, I wrote the complete Monopoly game. Just because writing code was a never-ending path of discovery, wonder and dopamine.


This is not me. But it could have been if I had such an awesome mustache at the age of ten

In the years working as a developer I have seen the landscape around me change drastically. When I started designing and coding in the early 2000s, CSS, some javascript and later jQuery was all I needed to master being a frontender. I also added some backend code (PHP and even Coldfusion in a dark era) to be able to integrate the frontend code with the backend. So for years I could design a project, code it and integrate it. At one point I was named a full stack developer. Life was simple. Even simpler when post-processors like SCSS came to life. I was like "I got this, bro!"


Also not me.

So what changed?

So I was happily writing SCSS, JS and some PHP, but then around 2012 the world started to change around me. I saw more and more articles about fancy frameworks like AngularJS on Twitter. At some point it seemed like new frameworks were being released every day. I was naturally drawn to this, but couldn't keep up and got a little overwhelmed by the seeming complexity of some of these frameworks. And I also suffered a bit of metathesiophobia.

Still not me.

Then one day I attended a meetup where some guy enthusiastically demonstrated AngularJS. He made a list of hospital employees which could be clicked to unfold a list of their certifications and skills. A very simple page. And the amount of code that was shipped to make this simple page work was over 1mb.

So that was it for me. This new stuff was overly complex, scary and most of all: I could write this accordion list in less than 1kb of vanilla JS. Or maybe even without JS in CSS and HTML only… My common sense said: "Why the **** would you use something so complex for something so simple?!"

At that time I was the only frontend developer at MyOnlineStore. And I have always been the only frontend developer for all my previous employers. So there was nobody to convince me that it would be wise to embrace these new techniques.

Why I stood still for so long

In late 2015, when I was already late to the party I got sick. A severe burnout followed by a big relapse one year later while I was still recovering. When I felt a bit better after a while and came back to the MyOnlineStore offices everything had changed. There were two new frontend developers. With new repos, new code, new words, new everything!

It was 2017 already. I did not know where to start. I didn't dare to ask for help, because of my misplaced pride. I was writing code before some of my new colleagues were even born… and now I should go to these guys and admit I had no clue what I was doing?

But I tried… I tried to keep up with it for a few months and then I was like: "I don't get it! fuck this shit!" 

"I have been doing design and development 50/50 for all of my career, so now it's time to say goodbye to one of these and focus on the other." And since I got so scared of The New Frontend World, I fled to the design department of MyOnlineStore. This was in early 2018.

Yes, this is me doing design

Unfortunately, after a year of doing (UX) design, I found out this was the wrong choice. After years of intensive therapy and running straight into a black hole that was another potential burnout, I came to the conclusion that design was not for me. I am able to design, but I can't handle the stress that goes with it. I felt like I had to answer and fight for all the design choices I made. And since my UX designing was mostly driven by instinct, this was really hard for me. On top of that, it all felt very personal. Maybe I can handle it today or in the near future, with all the things I have learned since, but not then. It fueled my insecurity enormously.

And then in late 2018, I decided to go back to frontend development. There I was, a frontend dinosaur in a modern world.

Yes this is me.

How to get up to speed? 

Now I faced a big challenge. I didn't want to go extinct like a real dinosaur and stick to my old habits, so how do you get up to speed after being paused for a few years in a world that changed (and is still changing) so rapidly? The first thing to overcome was my aversion for The New Frontend World™️. I tried to look at React and all other new tools with a fresh and unbiased view.

While I was away in design world a lot has changed within our codebase, but also in The New Frontend World™️. The tools we used improved or were replaced with better alternatives. The tools and codebase became more solid and mature.

Then there was news: React Hooks was about to be released in React 16.8. This made code so much more readable that I started thinking "Hmm, maybe I can do this".

I don't want to go all geeky on the differences between hooks and classes and why hooks are so awesome, especially since there are many excellent articles written on this subject. If you would like to learn more about this, you should check them out.

For me personally the biggest thing was the improved simplicity of using hooks in function components compared to using class components. Where it felt like class components made me jump through hoops to keep track of state, hooks just let me use useState().

For example, in oldskool classes, I used to write this to increment a counter:

this.setState({ count: this.state.count + 1 })

Where hooks let me do this:

setCount(count + 1)

I bet that if you are reading this you'll feel that the second version is simpler even if you have little (react) programming experience.

After this "challenge accepted!" point the hardest obstacle had to be overcame: how to handle the "I have to start all over again" feeling. I felt like I knew nothing. I was Jon Snow.

Dealin' with dem feelins...

Who had I been kidding all these years calling myself a senior developer? How embarrassing was it that I had to ask my 12 years younger colleague for help over and over again...

Some people will think "what's the big deal?", and I am happy for you if you do, but you have to understand that asking for help was a big issue for me. And a major cause for my burn out and the personality disorder that came with it.

So I did two things: I decided to start learning all these new tools and frameworks and more importantly I started to ask for help. But the most important thing I did: I told my colleagues how I was feeling and how insecure I was about everything. They were very supportive and this gave me the confidence to go for it.

One of the most supportive things they did is showing me that I did make progress. A lot, actually. They also showed me that not knowing everything is not the end of the world. As long as you keep trying and learning, things will work out in the end.

Soon, I also realized I did not have to start all over again at all. It might have felt like it, but I still had a big headstart with my years of experience in programming overall. It was just a new framework and new tools that I needed to learn, not learning how to speak and not the first tool I ever used.

It will take some time to learn all these new things. And that's okay. Good things take time. I should have realized this earlier since it's literally written on my body, but sadly it's not that obvious sometimes.

Yes, this is also me.

Okay great, challenge accepted! Where to begin?

First I made a list of all the tools we use. There were quite a few things for me to learn: Typescript, Babel, Webpack, React, Apollo, Redux, GraphQL, Yarn and many more. This list was somewhat overwhelming until I started to put them into two groups: things I needed to learn right from the start and things I could figure out later. It turned out the first list is not that big and a lot more do-able.

For example, I now know how to set up a project using Babel, although I have no idea about the inner workings. And that's okay, I will learn it someday. Until then it's perfectly fine to ask a colleague who does get it.

Bottom line is that it is okay to not know things. It's not the number of things you know that makes you a senior developer, it's the way you handle things that make you a senior. In my opinion.

I have always tried to take some time for personal growth once in a while, but this was only a few spare hours every now and then. However, for a few months our company MyOnlineStore is doing so-called Ship-it days where we developers can do whatever we want as long as it's somehow work-related. This is a great way for me to learn stuff I might not naturally learn during everyday work. When I work in our normal codebase I just run yarn dev, storybook starts and that's it. But on these ship-it days I create new repo's, install packages and configure everything myself. That is a great way to learn new things.

Conclusion

Take your time: good things take time.

Be yourself. 

Be awesome. 


If you liked this blog, please let us know by giving us some claps, retweets or likes.

If you think working at MyOnlineStore would be something for you, here are our job openings (NL).

If you have questions about this blog check out what I do in my spare time or just want to get in touch, you can find me at Bad Decision Works Instagram

You can find more of our blogs on Medium

Cheers 👋

Discussion

pic
Editor guide
Collapse
helleworld_ profile image
Desiré 👩‍🎓👩‍🏫

Great post!

I'm not even a senior frontend but this article describes perfectly how I feel learning these fancy frameworks so I can get a job somewhere... Even if I do my best there are too many things I don't understand (I'm a self-taught designer&developer, so I lack a lot of basic knowledge I guess...).

Unfortunately I can't ask any of my colleagues, but we have this incredible sharing-based community and posts like this, that make my hopes go high!

Thank you for sharing your experience.

Collapse
dreamdealer profile image
Johan van Tongeren Author

Hi Desiré, thanks for your response!

I am also a complete auto-didactic person. My way is just to start doing something and let my curiosity lead me. Not only professionally, but also in my spare time I taught myself to weld, use a lathe, do bodywork, build engines, etc.

Big downside of being self-taught is the terminology. I often hear my colleagues say stuff that I have no clue about, but when I ask them to explain I often also find that I perfectly know what they are talking about, but don't know the theory and words for it.

Also, having colleagues to talk to, discuss with and learn from is so valuable! But if you don't have the luxury of having them, it's very good to engage in communities like this one :)

Collapse
eddieaich profile image
Eddie Aich

Your story resonates with me. While I did take some time to learn the hottest frameworks, it turns out that sticking with PureJS and mastering Design Patterns has paid off in the long run. ES6+ really solved a lot of the problems that brought on these frameworks in the first place. And now with the next wave of trends coming in (Web Components, WebAssembly and their accompanying frameworks), we're left with a choice. Follow the shiny object or stick with PureJS, standards, proven design patterns.

Collapse
dreamdealer profile image
Johan van Tongeren Author

Hi Eddie! Pure/vanilla JS is always a good thing to master. It's the base of "our world".

But what you say about the next wave of trends is actually a hot topic with me too. I have been, and still am, working very hard to catch up with the previous trends and I also feel this new wave coming. But what I find hard is: how to keep up with all the news and filter out what's a fluke or what's the next Angular/React/whatever.

Collapse
eddieaich profile image
Eddie Aich

I have a few perspectives on your great questions.

Separate the core concepts in order to learn more efficiently
Try to separate frameworks into two categories: Design Patterns and Syntax. The Syntax is the easy part and just requires time to commit to memory. The Design Patterns is the one that is the most challenging to overcome, because it requires you to set aside any notion you may have on how to structure and architect an application. If you can understand the underlying Design Patterns of a particular framework, this will actually help you learn the next wave of frameworks much quicker. This is tough because you have to open yourself up to understanding someone else's opinions.

Frameworks are just that - someone else's opinions
If you keep this in the back of your mind, then it will allow you to approach your learning with healthy skepticism. If you feel that the prescribed approach of a framework is cumbersome compared to your prior experiences, then that is a valid point and you're probably not the only one who feels this way.

On keeping up with trends
Your question about keeping up reminded me of this great video from the creator of Django - A Framework Author's Case Against Frameworks.
I do advise you to stay up-to-date on incoming trends just to see what's coming, but I don't think that you should be stressing about mastering every single one. If you're constantly following the shiny object, you're not making yourself resilient to the ever changing dev industry. Here is a great article on this topic The Brutal Lifecycle of JavaScript Frameworks.

Thread Thread
dreamdealer profile image
Johan van Tongeren Author

Thanks Eddie, that are some great insights. I'll check out your links/videos asap :-)

Collapse
vgrovestine profile image
Vincent Grovestine

As a recovering Cretacious-era developer, thanks! I needed to read this today.

...Although I do take exception with your "...and even Coldfusion in a dark era..." remark--I have fond memories of the Allaire/Macromedia ColdFusion days! :)

My career dates back to the dot-com bust period, working as a back-end developer when vanilla code was king, a basic RDBMS was enough, and tables were still an acceptable layout method.

Along the way, I got further and further away from the code, delving more into consulting and support. And just like a frog in a pot on the stove, I boiled without hardly noticing.

Now, after many years in an "applied IT" capacity, I have the itch to get back to my roots. ...Holy crap, is that prospect ever overwhelming!

So today, I went into the basement in search of knowledge. (I work in an academic library; however, just as in the "real world", all things IT are relegated to a dark, window-less room. :P)

My reading material for the coming weeks:

books: "Programming Ruby", "Don't Make Me Think!", "Why Software Sucks..."

One step at a time, right? One step at a time...

Collapse
dreamdealer profile image
Johan van Tongeren Author

Hi vincent! First off; I have good memories of my Coldfusion time too. But CF got a bit of a meme status in our office, so the "dark era" remark was more of an inside joke. No hard feelings ;-)

If you feel like moving back to your roots I can only support that choice! You've got to do what makes you happy. But since it's so overwhelming sometimes it's good to take baby steps and also: focus on one aspect. Don't try to master all the frameworks and tools at the same time. Just start with a simple Hello World and expand from that.

And by the way: I am very lucky not to work in a dark windowless basement. Instead of that me and my colleagues work in one of the prettiest old buildings in our city with an awesome view of a park and some monumental buildings.

my office

Collapse
tsirolnik profile image
Yehonatan Tsirolnik

I'm young, 23 years old, but I've been developing for the past 10 years.

The world of development went from a 2D puzzle into a 5D holographic puzzle.
The simplest of projects is now using hundreds if not thousands of packages, we went from separation of concerns to a mixture of everything.

I'm a non-conformist, but sadly, not conforming to the modern, backwarded, standards of web will leave you out of the field.
That's why I love backend the most. A place where logic reigns and frameworks aren't introduced every two weeks.

Collapse
dreamdealer profile image
Johan van Tongeren Author

"The world of development went from a 2D puzzle into a 5D holographic puzzle."

That is a great analogy that describes the feeling for me very good! :)

I am a non-conformist in a lot of ways too, but indeed, sometimes you're left with no choice. If three of your colleagues want to go one direction and that direction actually offers a lot of benefits, why would I not conform to that?

Collapse
workingwebsites profile image
Lisa Armstrong

Wow! Nailed it!

I went through a similar situation of waking up one day and realizing the whole industry had changed. I call it my Rip Van Winkle moment.

It's daunting thinking you know the business, and feeling like you know nothing. That a-hole self doubt tells you that everyone else is smarter, younger, gets it better than you, who are you kidding? ... you know the speech.

I had to give my head a shake. Remind myself that I do know things, and I learned them by investing the time and energy to learn it. And if it takes longer for me to get my head around it, so what? I did it before, I can do it again.

Like you, since then, I've gotten my hands around the new stuff. There are moments when I feel like I know what I'm doing ;-)

Change is a constant in IT, and you can't get too comfortable.
Everything you know today, is worthless tomorrow.

If you've been around long enough, you've seen enough trends come and go. Cold Fusion was a good idea at the time.

IMHO,a good team is one that blends youthful enthusiasm with experience to find the best solution.

Collapse
dreamdealer profile image
Johan van Tongeren Author

That's a great conclusion! A blend of young and enthusiastic people together with senior citizens like us makes a great team.

Collapse
conorluddy profile image
Conor

Great post man. 35 years here and 13 working in dev, so I know the feels. Keep writing!

Collapse
dreamdealer profile image
Johan van Tongeren Author

Hi Conor, thanks for your comment and the encouragement! Maybe I might be able to help people by writing more about the struggles and feels that come with the dev jobs.

Collapse
galdamez profile image
Jose Galdamez

I feel as if our careers parallel each other's in age, years spent in the industry, and technology stacks encountered along the way. My journey pretty much went through the same milestones at around the same time: CF to PHP to jQuery to AngularJS to React. It has been overwhelming at different points, but definitely fun to see how technologies have evolved. I'm fortunate in that I'm at a point where I can occasionally choose the front end stacks so long as the customer's problem is being solved. This allows time to dabble in new libraries even if the occasional fragmentation gets introduced. The major hurdle for me is being diligent about starting and ending online trainings. My next major thing to learn is the JAMStack and Gatsby.

Collapse
dreamdealer profile image
Johan van Tongeren Author

Thanks for the reply, Jose!

(Online) Training is also something that keeps me thinking. At MyOnlineStore each of the developers has a budget allocated for personal development. My manager often asks me how I want to use it.

My colleagues and I have subscribed to Egghead.io and we're going to visit a conference early next year, but I can't honestly think of something else I can spend that money on 🤷‍♂️

Collapse
galdamez profile image
Jose Galdamez

Believe it or not but I have subscriptions to O'Reilly Online Learning, Sitepoint Premium, Egghead, Packt Premium, Tuts+, Pluralsight, and a list of Udemy courses. It's certainly too much content for any one person to go through. Here's my breakdown for what I think of each.

Egghead: Out of all them, the one with the most up-to-date tutorials on open source libraries would be Egghead. Their tutorials tend to run a bit fast so I usually have to go through a lesson a couple of times before the concepts sink in.

Pluralsight: Pluralsight would be the most polished in terms of presentation and the top choice for industry certification—if that is the end goal. They have quizzes you can take to prove what you learned.

O'Reilly: O'Reilly is probably the largest library since it combines a long list of publishers (O'Reilly, Apress, Wrox, Packt) into one site. O'Reilly has just released an interactive learning feature which apparently allows one to get hands-on within a browser. I have yet to use it though.

Sitepoint Premium: Sitepoint produces lots of original content—books, videos, articles—for open source. Some of the video tutorials are letdowns. The books have gotten more numerous in quantity and shorter in length. Sitepoint will also aggregate books from other publishers like Packt so it's kind of a 3-for-1 deal. They are now pushing an offline reading app that is 100% Web-based. This came after they decided to move away from downloadable e-book formats. Personally, I find it kind of annoying.

Packt: Packt books are too all over the place; some are okay and some are duds. I probably have over 100 Packt e-books and am in no rush to read any of them. Most of the authors do not seem to be well known.

Tuts+: Tuts+ has a lot of information for both popular and obscure open source libraries. You'll also find more UX and design-focused content here than most of the other platforms.

Udemy: Some top, work-from-home teachers can certainly be found here. I find most of the courses are catered towards beginners and can be rather long-winded. It's the cheapest if all you need is a couple of courses throughout the year. The lowest price is $9.99 a course.

Free ones: You want to know what's the crazy part? Chances are most developers don't have to pay for online tutorials. My public library provides free access to LinkedIn Learning (formerly Lynda.com) in addition to a few other IT training sites. That's not even counting the other free resources on YouTube, Microsoft's Website, freeCodeCamp, Medium, Dev.to, and Adobe TV.

Bottom line: The biggest challenge for me is winnowing down to the sites that make the most sense for the skills I'm trying to learn.

My recommendation: For the front-end space, I doubt anything beats Egghead. My 2nd top choice for training, in general, would be Pluralsight.

Thread Thread
dreamdealer profile image
Johan van Tongeren Author

Thanks for the extensive reply, Jose! 😇

Pluralsight is new for me and I've immediately opened the site and I'm going to look into it right away. Certification is a nice bonus 🙃

Thread Thread
galdamez profile image
Jose Galdamez

My pleasure! I would only add that Pluralsight seems to only offer the certification practice exams for CCNA, CISSP, VmWare, Azure Admin, PMP, etc. if a user is on the business plan, not the individual plan. That could be a good motivation to have your employer sponsor a monthly or annual subscription. Either way, have fun learning! We got this 🧠👍

Collapse
yokowasis profile image
Wasis Haryo Sasoko

I am a dinosaur myself. You have got to be careful. I trust people and they stab me in the back.

You can do it yourself without the help of others. Experience. You learn something complex without any resource back in the stone age. Imagine what you can do at the modern age.

You got YouTube, stack overflow, online documentation, communities. Use it to your advantage. You can triumph without them back in the day, imagine what you could do with their helps.

I am a php developer, and not using a single frame work (except WordPress), and have no idea about mvc. Like you said, WTF I need to create 3 files, when I can do the job with only 1 files 😂. But 1 day, I need to edit a Code Igniter Project, I got confused as hell. Then I decided, it's time. I watch YouTube and learn Code Igniter and Laravel in 1 fricking day. Even I surprised about my capability. It's about finding the right YouTube channel.

Collapse
dreamdealer profile image
Johan van Tongeren Author

It's awefull to hear that people have betrayed you in the past. I have had some negative experience with that too. But thinking about that period; these people were not "my kind of people". I know it's sometimes hard to distinguish, but try to surround yourself with only the right kind of people. Trust them with something small and see what happens. If they handle it right you'll know they are good.

And yes, you can learn from youtube, stack overflow and all these great communities, but sometimes you are left with no choice and have to work with others. And you might as well let them help you and learn from them.

I have learned a ton from youtube (welding, machining, etc), but my experience is that having you explain something in person and being able to ask your own questions is so much efficient.

But then again; learning is something very personal and you'll have to figure out what suits you best :)

Collapse
ambroselittle profile image
Ambrose Little

Thanks for sharing. I feel ya. I took a dev hiatus into design and management for some years, and I felt largely the same when I came back to full-time dev initially.

I still often ask myself why we've made all this so complicated. Why do we keep reinventing things that (probably) don't need to be reinvented. But it keeps things interesting and keeps food on the table. 😂

Collapse
dreamdealer profile image
Johan van Tongeren Author

Back in the days the complexity/layering (like jQuery) had two major advantages (for me):

  1. easy of coding. $('#id') instead of document.getElementById('id').
  2. cross-browser compatibility. Not having to care about all the quirks.
Collapse
steelwolf180 profile image
Max Ong Zong Bao

Wait.. a second is the drawing with the "good things takes time" quote a actual tattoo on yourself?

After reading it, it's a awesome article and it reminds me that I should be hungry on new things and chucking my ego aside to ask for help.

Collapse
dreamdealer profile image
Johan van Tongeren Author

Hahaha yes, that is an actual tattoo on the inside of my right biceps.

Chucking your ego aside is a good thing always! I also struggled with that when I did CrossFit for a few years, before my burnout. I kept trying to keep up with 10 years younger guys that did sports as a profession. That's a recipe for letting yourself down, getting injured and not having fun working out.

Collapse
steelwolf180 profile image
Max Ong Zong Bao

That's wicked.

Collapse
opie profile image
Jason 'Opie' Babo

Great post. I can relate, for sure. I’m about to turn 36. Except in my case, I went from a full time “webmaster” at the time (full stack dev) & “system administrator” and transitioned more to a ”people role” in the gaming industry. Of the 2 decades of my career, over half of that was spent now working in roles such as community manager, support, partnerships management, account management, talent development, etc.

I’ve recently been wanting to return to a full time web dev or system administration role again, so I thought, “I’ll do some freelancing to get myself back into it and rebuild my profile.”

Since my old portfolio of hundreds of websites created over my career as a web dev were many years old, I thought the best thing to do would be to create a new portfolio with new work. Boy, did I get a slap on the face when reaching out to potential clients. Not only did most clients frown upon the prices I’d give them (almost giving away my work for free just so I could build out my portfolio), they would frown upon the fact they had to pay at all outside of hosting and a domain name.

With services such as Wix and Squarespace, or the free access to the web site designer that comes included with most cPanel hosting packages, it became nearly impossible to convince a client to pay for something. Not to mention the free plugins for Wordpress to easily design a great looking site. It seemed time wasn’t valuable anymore. And with that, neither was experience. People don’t understand that you aren’t paying for the time I’m spending on their project, they’re paying for the time I’ve spent learning to be able to create their project. But even lowering the price as low as possible didn’t spark interest.

The other options were Freelancer.com and similar sites. It had been a long time since I visited those services. Holy hell, what happened to the prices?! There were actual people offering things that I remember would cost dozens of $ an hour at least for just a few cents... this isn’t going to work.

So I gave up, sadly. I applied for over 100 remote job openings over the last 6 months with no luck. I had to give up. I have to provide for my family, so I’ve just stuck to what I can prove I’m good at. I stay connected to incredible communities such as Dev.to, I stay up to date in dev news, etc., I like to fiddle with frameworks I’m not familiar with in my free time when I’m not working on my hobby (I run a text-based game hosting service that includes full web hosting and email hosting options completely free for over 2 decades now.)

I stay connected because I loved it and will always love it. I made the decision to focus on a different career path. I now watch from the outside, wishing I was developing great things for people instead developing great people.

Anyway, thank you again for the great article!

Collapse
dreamdealer profile image
Johan van Tongeren Author

I am lucky that I work for a company that has one product that is being sold as a service, so there's always work for me. But I can imagine it being very hard in your situation. It's sad to read that you had to give up, but on the other hand, it's great to see that you still love it and try to keep up.

Collapse
opie profile image
Jason 'Opie' Babo

Thank you, Johan!

Collapse
danielvbienne profile image
Daniel Vasile

Thank you Johan for this article who's falling right at the good moment for me. I'm 32 years old and I've been working for 4 years as an Interactive Media Designer (Design, animation,film, code...)... But I was "specialized" writing code. Doing multiple things like animation, design or film was submitting me to a permanent stress. When I suddenly know that I had to choose one thing and make it good.

I found a job as a frontend dev last month and I learn a lot of new thing in a short amount of time.

With your article you make me feel confident with my choice.

So, thank you for your post and let stay in contact to share what we learned and what we are learning.

Best regards
Dan

Collapse
dreamdealer profile image
Johan van Tongeren Author

It makes me really proud and happy that my humble blog post makes you feel confident and helps you with your new endeavors. Keep it up, Dan!

Collapse
tomavelev profile image
Toma

Less code is better code. I also love vanilla and I am gradually learning the new stuff. To make something technologically complex does not mean - better 100% in purely technological terms like speed, maintainability, etc and even better in dollars value. Actually, making things simple is our big hidden task - simpler to devs and the end result to non-devs.

Collapse
dreamdealer profile image
Johan van Tongeren Author

You're completely right, Toma. But sometimes a project requires some complexity to minimize complexity. That sounds strange, but the project we're working in (a saas e-commerce platform) is só big it needs a large stack to make everything reusable and maintainable.

The big challenge there is to keep it simple nonetheless :)

Collapse
jagmeethanspal profile image
JSH

Great post, suggestions and conclusion. I am not even from the Web Dev vertical, and thus the amount of choices and frameworks just boggles me to even start somewhere, coming from the Linux/C programming land (maybe the big-bang era). Just few months ago I was thinking getting towards jQuery would be cool, lol.

Collapse
dreamdealer profile image
Johan van Tongeren Author

Haha! Learning jQuery can still be fun and there might be a lot of applications for that, but I think there are better things to learn these days 😉

Collapse
jagmeethanspal profile image
JSH

Ok, and will the "better" things have a dependency on understanding jQuery or just the Javascript basics etc. Is there a generation map you can point me to?

Thread Thread
dreamdealer profile image
Johan van Tongeren Author

It wouldn't be bad to understand some basic jQuery, since there is a big chance you'll run into it somewhere, but if I were you I'd probably focus on JS and ES (ecmascript) since these are the basics of all other frameworks and compilers.

Collapse
sapegin profile image
Artem Sapegin

The difference between setState and hooks is actually even bigger because your example is incorrect and may lead to using a stale state and saving an incorrect value, so you need to use a functional form of setState:

this.setState(prevState => ({ count: prevState.count + 1 }))

This is hard to understand and remember, and Hooks have no such problem at all.

Collapse
dreamdealer profile image
Johan van Tongeren Author

I think this illustrates how happy I was with hooks very well 😊

Collapse
spettifer profile image
Steve Pettifer

I know someone else mentioned impostor syndrome, and I do agree with them that you certainly displayed elements of that. I've been there too. I suppose I'm what you'd call a backend dev, C# and Azure development mainly. I'm 44 and coming up on 19 years as a dev (I had toyed with a bit of HTML and JavaScript at uni in my spare time but nothing significant, so I started as a graduate trainee). A few years ago I was struggling to keep up with a few key concepts and patterns that had passed me by thanks to some of the places I worked being pretty backwards in some ways (and actually React and modern js development was one of those topics). Luckily at the time I was working with some awesome people who are now good friends and one in particular just encouraged me to take things one bit at a time and explained anything I didn't understand that he could and if not, he'd know someone who could. I owe him a lot (and Pluralsight!). I was really struggling with depression and anxiety back then in part caused by this sense that I wasn't good enough. I still occasionally worry about it but all I have to do is have a word with my mate or one of the great folks I now work with and I'm back on the right track. I think as you get older it becomes easier to feel that it's a youngsters game and get yourself tied up in knots, but as you or someone said, what makes a senior is how you approach problems and progress work, not how many frameworks you can use off the top of your head. If you can recognise the need for one and can evaluate which is the right one to use (maybe by asking the right questions of someone who knows that framework) then that's how to be a senior. Good article!

Collapse
dreamdealer profile image
Johan van Tongeren Author

Thanks for that comment, Steve! I really recognize myself in it. It is só good to have people around you like that and I am very happy for you ☺️

Collapse
mikemckenna profile image
Mike McKenna

Johan, this hit home for me in many ways. I'm at the same point of my life and feeling a bit stuck (I have you by 5 years). I keep trying to push through the learning, but keep stumbling to stay motivated to learn the latest frameworks/technologies and not become overwhelmed. This helped me understand these feelings are not mine alone, and I'm not the only one going through this. Strength in numbers, right? ;)

Appreciate you sharing your experience.

Collapse
dreamdealer profile image
Johan van Tongeren Author

I am very happy to be able to help in this way ☺️

Collapse
Sloan, the sloth mascot
Comment deleted
Collapse
dreamdealer profile image
Johan van Tongeren Author

Thanks for the kind words, Marcos ☺️

Collapse
pyr02k1 profile image
John

Just want to say thank you! I started my tech career entirely in the sysadmin and netadmin side of things and mostly plugged away at code in my free time. Enough that back when I did it, I was competent enough and comfortable enough to not be worried. Since then I've spent 7 years doing field service work for tech adjacent industries and one very tech related industry. It left me feeling really out of the loop over the years, but I tried to track enough to at least know the current terminology, even without an understanding of it.

With that said, I've been left feeling rather helpless these past weeks as I watched the company change hands, the lead developer for the every codebase for everything leave, new guy come in for one small part of it. It's been a very unique few weeks to say the least. I ended up inheriting AWS in it's entirety (serverless is a thing as I've learned), the API as it stands, a project to localize the API with a backend and frontend entirely for locations without internet, and then the project to move all of the previous to the web in whatever fashion I see fit. A lot to be given after years of inactivity.

I can say that the number of times I had more than 20 tabs open in any browser was measured under 50 in the last 15 years, but these past 3 weeks I've had upwards of 30 in 2 separate windows just for questions and manuals, github repos and gists, and a ton of dev.to posts. Finally tonight, I hit a milestone. At last I pushed my 5th or 6th rev of the api where I'm mostly satisfied with the base it's at now (minimum viable instead of complete at their request, but with a completed db since I don't want to revisit that).

As I was closing out tabs I came across this post, finally reading it after who knows how long since I'd sent it from my phone to my PC. It just reminded me that admitting I'm outdated and asking questions is not bad in our world. It may be in the grand, commercialized, top tier exec side, but not in the dev world. It's something I had entirely forgotten and I'm tremendously thankful that you posted about your experience here. After reading this I forwarded off some questions to the only other devs within the company to ask their opinions, thoughts, and ideas on how to proceed for a couple of things. It felt good to finally ask for help instead of slogging through tab after tab with search after search in hopes of finding the answer eventually.

Thanks again for your post,
John

Collapse
dreamdealer profile image
Johan van Tongeren Author

Hi John! It makes me very happy to read that my blog helped you conquer this hurdle in these difficult times. I can imagine the load you must feel on your shoulders now. But it's indeed a very good thing you reached out to your fellow devs and asked them for help.

I do think tho, that this should not only be normal in our dev world, but also in all other fields.

Collapse
falces profile image
Javi R. Falces

Great!

After many years without learning new things I've decided to change myself and this 2019 is being my learning year... and it's awesome. Also, I try to learn and follow all new and youngers developers, they're amazing!

Collapse
dreamdealer profile image
Johan van Tongeren Author

Their enthusiasm is contagious. It reminds me of myself when I was twenty years younger. And it makes me think like that again.

Collapse
popoo profile image
popo

Well, you're never alone.
My first job was at a big bank as a front-end developer.
My co-workers were: two older and one younger developer. They were all dinosaurs.
The stupid thing was, they knew it and stopped even coding realizing it was "too late for them".
I think this is bullshit because challenge is what pushes us to learn new things, beyond our confort zone.

It was crazy because they "worked" there since 10 years (or more).

So it's better to say 'oh, I might be a dinosaur.. what can I do to change this ? ' than ' oh, I might be a dinosaur.. don't care anymore. '

And yeah, I also have the feeling I'm lost in the tech that is changing very fast. Being a developer means working on it every day and getting out of your confort zone. I found 'frontendmasters' really helpful to keep myself on the best road (for now... I hope).

Collapse
dreamdealer profile image
Johan van Tongeren Author

I think that if you stop caring about what you do, you should find something else to do. I can't imagine these guys at your first job leaving home satisfied and happy after a day's work.

Being challenged and building cool things is what motivates me and makes me leave the office happy. It does not matter if this is React, C++ or HipsterJS 9, embracing something new and building awesomeness with it is what matters.

Collapse
leastbad profile image
leastbad

Hi Johan,

I'm glad that you're finding your path through burnout and continual learning. No doubt that sharing your story will help others.

I do feel a strong (pee is burning level strong) need to suggest that what you're writing off as being old and not asking for help wasn't stoicism but potentially feeling imposter syndrome because your brain and gut are trying to tell you that somewhere along the road to this moment of React enlightenment, maybe everyone else went crazy and you stayed sane.

Specifically, I think that it's painfully regressive to have moved so much logic and responsibility to the client when you're inherently dealing with a stateless medium like the web. The "it would be funny if it wasn't so sad" amount of infrastructure and bikeshedding and constant tool churn that has gradually shifted from shocking to justifiable to "that's just how things have to be, now" is on par to watching Republicans do backflips to explain how Trump is a brilliant, honourable man who is definitely not a narcissist. :)

I spent a few months earlier this year learning and using React and React Native on some projects because my SO is using it at work and I wanted to be able to help. The whole time, coming from a Rails background, I had to constantly suppress feelings about how insanely difficult it seemed to be to accomplish very simple things. I recognized that my outbursts were not helping her, but I also held faith that surely all of these people who love React or Vue must have had some kind of light bulb moment where suddenly all of the pain of mastering all of these frameworks, packages, transpilers, reducers, build tools, shims, linters... that there must be a moment where everything clicked and made sense. That never happened. I firmly believe that there is now a massive sunk cost fallacy at work, especially among the younger members of our industry - many who have never worked with other tools and would be deeply terrified if the thing they've been assured is progress is fully debunked as a misstep. None of them want to hear that in 2004, one developer could teach themselves Rails (or PHP) and build a simple site from experiment to deployment in a day. The idea that all of these advances have dramatically upped the complexity for very little obvious benefit is something that only makes billing managers happy.

First of all: server-side rendered code is still the preferred development path today, despite the bubble of JS-for-everything that exists around sites like Dev.

Second, you can still embrace things like ES6 and webpack without even considering polluting your project with React. You think hooks is simple? Check out stimulusjs.org for simple. Stimulus is amazing! It's created by the same folks behind Rails, although you can use it with PHP (or ColdFusion). (BTW, have you noticed how similar CF templates are to Vue? I don't think that's an accident.)

Third, I managed to channel my sadness and frustration at the state of things into an incredible new approach to building applications that has no client state. It's called StimulusReflex and the basic idea is that when you load a page, it opens a websocket back to the server and captures events that happen in the browser. Those events trigger code paths on the server that update whatever data stores are applicable before re-generating the page and sending the changed bits back down to the client for lightning fast DOM updates. You can try out a bunch of examples here: expo.stimulusreflex.com/demos/tabular

The tabular example is compelling because there is literally zero custom JS required to implement this page, even though I'm sure you'll agree that it sure feels like it's running in React. (This is running on a free tier Heroku dyno; on a real site, round-trip updates are usually in the ~10-15ms range.)

This whole example required 115 LOC, between Ruby and HTML. It took... a very short amount of time. We want people to look at this and seriously question: if this is possible, then why do we need to maintain state on the client at all? If this is possible, can we keep our integrity while continuing to insist that React is a preferred path forward?

Collapse
dreamdealer profile image
Johan van Tongeren Author

Hi pjforde1978! First of all; thanks for reading my blog and taking the time to write such an extensive reply.

I can really see and appreciate your points about React and other frameworks, but this is not the big point I tried to make with this story.

If you replace React in my story with StimulusJS, your StimulusReflex or any other new technologies it still might be hard to catch up with something new after being "paused" for a while. This can feel overwhelming (and indeed make you feel like an imposter!) and hard to engage.

So my goal for this blog is to encourage people to keep learning, instead of promoting React.

Collapse
salvan13 profile image
Antonio Salvati 🦊

My common sense said: "Why the **** would you use something so complex for something so simple?!"

Like me everyday in the past 2 years at work.

I never stopped learning new frontend tools, but just for work, when I can I still make web apps like a dinosaur doing simple things.

I am happy to be a dinosaur 🦕 :D

Collapse
dreamdealer profile image
Johan van Tongeren Author

There's a lot to say for sticking with plain JS and whatnot, but that is another discussion. The point is that it can be hard to get back on the horse after falling off.

Collapse
joemsak profile image
Joe Sak

This post is also me.

Collapse
sebbdk profile image
Sebastian Vargr

I feel ya, sometimes, doing FE development feels like a never ending black hole of WTF.

That is, until you caught up in the light of something new and shiny and the cycles starts over.

Collapse
dreamdealer profile image
Johan van Tongeren Author

I think this WTF-feeling applies to a lot of development groups, but I wouldn't de surprised if FE leads the list 😝

Collapse
benhosk profile image
Ben Hosking

The technology environment changes all the time, don't fear it, embrace it.

in a few years time it will be something else new

Collapse
dreamdealer profile image
Johan van Tongeren Author

There is nothing that changes so rapidly as technology. And especially (web) development. But that's not a show-stopper if you can keep yourself eager to learn and if you don't forget you don't have to do it all alone.

Collapse
lauriy profile image
Lauri Elias

"Be yourself."

But you weren't : ) You went with HipsterJS 9.

Collapse
hghnimat profile image
hamza A.ghnimat

Hi there .this is great article for all dinasors
This enthusias me to do the same
Thanks again

Collapse
dreamdealer profile image
Johan van Tongeren Author

Thanks for the kind words, Hamza :)

Collapse
wadigzon profile image
WADIGZON DIAZ-WONG

Excellent. Thanks for sharing Johan.

Collapse
dreamdealer profile image
Johan van Tongeren Author

You're welcome! ☺️

Collapse
fly profile image
joon

I really enjoyed reading this, and the happy ending felt heart-warming. Thank you. I wish my superior reads this though there is no chance whatsoever :)