I've been in web development for a long time and not until four or five years ago did I had to keep up with this light speed moving train.
Background
There has been so many times when I heard some phrase from somewhere be it at a conference, talking to a colleague, or simply surfing the web, that I realised oh, I didn't even know this exists.
Angular, React, Vue, RxJs, NgRx, TensorflowJs, CSS Houdini, Webpack, Parcel, Gulp, Grunt, npm, npx, CSS Grid, Flex box, Meteor, SASS, LESS, and the list goes on and on and on 😵.
Those moments can be terrifying, especially if suddenly everyone is talking about it. So finally, on a Sunday afternoon, I sat on our balcony thinking I can't continue like this and always be behind of what's happening.
I decided to talk to some of the people I knew (face to face, on Twitter, LinkedIn, conferences and meetups) were ahead of the game most of the times and see what they do in order to be where they are.
Since that afternoon where I was sitting on my balcony sipping a lukewarm coffee, I've learnt a few tips and tricks around what do to be able to feel you know enough to be able to keep up with what's happening. So I decided to share my learnings (and hear yours in the comments) with you all.
1. Reading
The most important part of learning is reading (at least for me). I always keep some time and read (I will share some sources later 👇🏽) about what's happening. I don't usually go too deep into something when I read, just to learn the background and story of what the topic is about.
You are probably wondering when, and I know for most people this is the most critical part. I do not drive to work although I live in a suburb. I take the bus and spend the whole time reading. I will also spend some time before going to bed or after waking up early in the morning to catch up with what's happening in the wild.
Note: I usually see articles and posts on social media and use Instapaper to keep track of where I am with my reading list. It's got an iOS app which gives you a nice option when you share your links from basically anywhere.
Enough talking, tell me what do you read?
Your next question is probably what do you read. I have these as my reading sources:
Blogs and Feeds
I have a RSS feed for you to download which I've borrowed from Paul Irish and customised it.
In addition to that, I check below sources regularly:
- Google's Web Fundamentals
- Open web platform weekly summary
- Our very own Dev Community
- CSS-TRICKS
- CSS Wizardry
- Smashing Magazine
- And recently less of frontend weekly on Medium
Social media (mostly Twitter and LinkedIn)
Most days, 45 minutes to an hour of my time is spent on Twitter and about half of that on LinkedIn. I don't spend more than a few second on anything. If something catches my eyes, it will be added to my Instapaper list.
Official documentation (tools and frameworks)
Official documentation is where I go deep into something. If want to learn everything about a subject, whether it's a framework, library, tool, I start with their documentation. more than 80% of the time, I find what I'm after.
Books
This one is a tricky one. I haven't had a situation where I finished the whole of a technical books. I use them as reference material and refer to them whenever I need to know a very specific detail of a subject. But I would never spend that much time reading a whole book, things are changing faster than I can finish the book, trust me on that 😉.
Weekly/Monthly news feeds
Weekly newsletters and feeds are awesome sources of new information. The maintainer spend a lot of time researching and sharing information and I have to say kudus to them.
Here are a few I use:
- Web Design Weekly
- Frontend Focus
- JavaScript Weekly
- Web Development Reading List
- Web Operations Weekly
- React Status
- Angular Weekly
- Newsletter - Vue.js Developers
2. Following cool people
I follow a well-curated list of people on social media who are active and produce new things. This is a tricky situation because sometimes you realise how much you don't know. But I love it and it's a great thing for me personally to know what's missing from my knowledge. It helps me form a plan for my learnings.
Are you still wondering why?
If you feel like you are the smartest person in the room, you're in the wrong room.
Confucius
These are some of the people I follow:
- Addy Osmani - Web and mostly performance
- Paul Irish - Web
- Jake Archibald - Web, mostly standards
- David Walsh - JavaScript
- Christian Heilmann - Web
- Dan Abramov - React
- Stephen Fluin - Angular
- Sarah Drasner - Vue
- Asim Hussain - JavaScript, AI, TensorflowJs
- Sean Larkin - Webpack
And the list continues with another 800 or so amazing people, but you might have noticed a theme here. I follow specific people in different categories to find out what's happening.
Note: I do follow people from all sorts of different backgrounds and not only ffrontend. A good frontend engineer should know enough about the backend and considering I am consultant, it's a must for me.
3. Conferences and Meetups
Conferences are the most fascinating place to meet smart people, learn a few things and get an idea of where the industry moving to. It give you a breadth (and sometimes even depths) in multiple topics that you didn't even knew they are a thing.
Apart from attending, I usually speak as well. This is also a really good way of learning. You should know a topic well enough to be able to present it to your audience. To see when and where I'll be speaking, have a look at my speaking schedule.
There are thousands of conferences out there. But I usually use these sites to find out what's happening when:
- Australia's Dev Events
- Confs.tech
- Papercall.io
- Angular conferences
- JSConf
- Frontend conferences
- Meetup.com
4. Videos, online courses and Podcasts
Some people like to watch videos and online courses. This is how they learn, however, for me that's not the case. But I don't exclude them from my sources, especially recorded conference talks. Below is a list of YouTube channels and online courses I use occasionally:
- Google Chrome Developers - This is super useful for me since they have pretty much short clips teaching something useful and frequently
- Microsoft Developer
- NDC Conferences
- ng-conf
- Nordic.js
- Vue NYC
- React conf
- Angular Connect
- Angular channel
If you're looking at online courses, these are my favourite:
Another good source of information are podcasts. They are so good if you ride/drive to work everyday. You can just listen to become aware of the latest news or learn about a technology.
Below are a few I use:
- The Hanselminutes
- JavaScript Jabber
- Developer Tea
- egghead.io developer chats
- frontend Happy Hour
- The freeCodeCamp Podcast
- The Frontside Podcast
- Full Stack Radio
- JS Party
- Modern Web
- Syntax
- Toolsday
- Web of Tomorrow
5. Pet projects
Many people, including myself, learn the best by doing the actual thing. I need to code to learn about something whether it's a new technology or a library or simply a new API.
Side projects (aka pet projects) are a great way to grow as a developer, both personally and professionally. They let you get out of your comfort zone, learn new skills, and exercise your creative muscles. But it can be hard to get anything done while juggling a day job, kids, friends, family, and countless other commitments.
In the past, I’ve tried to cram side project work into the cracks between other items in my calendar. It was frustrating at best; completely ineffective at worst. I constantly felt like I was shortchanging the projects I was most passionate about. So what should we do?
Start with something small but keep doing it
It is definitely hard to start a project, harder to get back to it after some time and re-start it when you’ve been working on something completely different.
So working on it a bit everyday keeps you on track while not bored or tired. If you keep doing it everyday it will be very easy to pick it where you left off since it is still in your mind.
No deadlines or pressure
Don’t put deadlines or pressure on yourself for a side project. It is not a client engagement and you don’t want to loose your excitement about it really soon. Keep focusing on one or two task a week and finish it in a relaxed atmosphere.
Take your time, have a juice (or beer, or coffee 😂) or fresh fruit handy and let the feeling of small holiday overcome the daily agile mindset. Close the Facebook, stop scrolling your Twitter feed and focus on what you promised yourself doing everyday.
Once the habit is formed, the pressure is off and you start feeling the joy about doing something you feel passionate about.
Shift the project time to time
Don’t work on something for too long. as we see new languages and technologies introduced everyday, we should shift our pet project to use different languages/technologies accordingly.
I love frontend specifically, however try to keep track of security, azure, IoT, Hololens, etc. to be a bit more across other areas.
My approach to this is to complete a project I start working on and then create a new one using the new tech I want to get familiar with.
Talk about it with someone
This one doesn’t have to do anything with your pet project, but helps you find the weakness points and new challenges since it is exposed to people who love asking questions and learn new things.
Even if it is an internal brown bag session, or presentation, or you are talking on an external event like meetups or conferences that project helps you gather the contents easily and demo something which even demo gods cannot prevent it (since you’ve played with it enough previously).
6. Writing
There are a few reasons why writing an article helps you learn new things and put the subject into your long term memory.
In short writing helps you:
- Slow down a little bit and focus on a topic.
- Think a little differently about something as you figure out how to explain it.
- Consider issues conceptually rather than in a more narrow or applied perspective.
- Research things more clearly, and document your research with links.
- Be more likely to remember things later.
- Have a good place to search when you can’t remember things later.
I always consider this to myself (which I've learnt from a colleague of mine), do not write for others. Write for yourself and make sure you detail down everything you need to know at a later point in time. This then will help others too.
Having discipline
According to many philosophers, self disciple is like muscle, the more you train it, the more you enjoy the result. Even if you follow all the points I've mentioned so far, but don't get yourself a good daily habit, it's not going to help you.
Think of how many times you started something and let it go half way through, or never finished it. It's very important that you stick to a schedule and follow it no matter what.
Here are a few tips I've learnt:
- Have a goal for yourself. Set milestones to reach that goal and evaluate your progress regularly.
- Do not compare yourself with others. There will be always people who are smarter than you. So try to be reasonable and consider your capabilities. At the same time don't set your goals too low, stretch yourself a bit and push for a better self than what you were yesterday.
- Have self motivation, praise yourself for your big achievement and have a little punishment for when you fail to do something.
Never give up, learn to wind down
At times you might feel frustrated about your progress. Or simply think you would never be able to keep up like other people around you.
Let me tell you something, when that happens, you need to wind down. This is one of the many signs of a burn out. You might have pushed yourself too much and spent more than your body could have tolerated.
This is probably good time for a break, a holiday or a change of direction. Never be afraid of a telling yourself you need a rest. The world never stops, so you should stop trying to chase it constantly.
Summary
I think I've covered most of the tricks I use to keep up with what's happening in the frontend world. Please, please share your awesome ideas in the comments and I will try to keep updating this post with those to have a far better plan together 🖐.
Another point is that these tricks will help you regardless of whether you're a frontend developer or not 🔥.
Top comments (15)
Dissenting voice:
I do the opposite. Most front-end is fads & not beneficial to any site/app metric. Not even measured or understood. Immature tech always breaks at scale, edge case or becomes obsolete. Now there is an industry of front-end advisors giving out bad advice who have never worked at scale (your advice is good), don't study metrics & know little of SEO, growth, networks or engagement. "The ROI on your hover states is horrible". "Your SVG illustrations get clicked on 4% of the time".
"Push me" as btn text works 5X "Learn more". Try it. Use "Push me" & watch a bunch of people push the btn for no reason. Nope, it's all scrollbars, slide-ins, carousels, hamburgers, embedded fonts, google analytics, 100HTTP requests, outdated frameworks, same icons, same stock, same colors, same illustrations, privacy & security violations, award sites with unusable UIs, trend chasing. 90% useless. A lot of over engineering to deliver a few words & a pic usually.
Trendy technologies come & go. I stick to native & classical methods for everything. I don't waste time reading everyones thoughts. They never existed when I started & are often not based on actual metrics, just opinion, repetition & traffic chasing. TOS & returns are low on their sites. They can't get to 4min but can be acclaimed speakers or bloggers.
UI business overall is so useless, you get more engagement from snark, sucking up & 'playing the game' then from trying to be honest, knowing your stuff or helping. Glibness wins. Silly statements win. False positivity wins, lying wins. Lot of this is due to UI, bias & lack of self-awareness. Also, the history of tech plays a larger part in the overall lack of balance.
Not saying I am any better, but UI bloat is now an industry, not a product. If I was starting today I would avoid UI as a career (UI since 90s).
Also, I am not referring to specific individuals (I can, no prob), some provide massive value.
Ignore, implement, test, change, repeat. Live & die by the results.
Don't listen to me. Test for yourself.
I'm a bit torn - because I completely agree that the state of UI and frontend frameworks is a bit bloated. But I think this is a great article just to help you guide the frontend world and just to keep up with it - you don't need to spend hours reading through and following everyones advice.
But a lot of the frontend stuff you see coming out and that you have to keep up with - large large companies come up with these ideas and implement them at the biggest scale you can probably have. E.g. React with Facebook.
But I definitely agree, it's probably not ideal for small startups just starting out to engage in these frontend frameworks and fancy ideologies because they have no product market fit, need to move fast and these things are truly in their infancy.
I am being dramatic on purpose of course. The snarks are engagement triggers as I state, it works, we are "method commenting" to increase the activity on this post so more people see it & it doesn't disappear. Because it is good. I don't mind looking foolish to keep it on the homepage.
Many of the big sites did not get big because of their UI.
Most of their successes were acqui-hires. Most of their products are spyware powered not UI. All have substantial bugs.
With respect to UI
alexa.com/topsites look through the top 500 sites. White bg, dark text, blue links, left aligned (on L-R languages), adult sites inverse. All simple, all closer to HTML than the rest of the industry. 90% of startups fail. We are now 90% mobile. The vast majority of UI is over-done. It always was, even mine.
Anyone is free to do or think whatever you want but very few people actually address UI in a bigger or realistic context.
I think Yaser is smart & right, this article is good. I genuinely appreciate the effort & will read it in full (in parts). That's why I engaged (thanks)
I opened with "Dissenting voice" to be one (rather than am one). I think both things at once: read a lot, but do first & then you know who knows otherwise you implement wrong.
Luke, your balanced & accurate perspective is appreciated (thanks).
It's not how we get this post to 200 comments though. Editing my comment above to make Truong look bad is 👀. Oh UI...
Just kidding Truong, also you are right & I agree with you. Seriously.
Let the games begin between you and Truong haha!
The great UI wars of 2019 began on Dev.to but spread virally through all platforms. No one remembers what life was like before those tragic times but they speak of a flash & lots of tables. A holy grail, now lost in a maze of grids. King Truong has ruled for millennia.
Nowadays, AI creates all UI from realtime global feedback loops sorted by ML. If we stop clicking the electricity goes off & the Internet disconnects. I am not sure how much longer I can continue for so this may be it for me in this tiny comment box.
Off. Line.
Pick a side Luke. The answer is in you. The force is strong. You are our only hope.
This comment is nonsensical.
UI leads to creation of Graphql, React, Webassembly, microservice, Gatsby,.... and other tons of other technologies, some of them are not web-related (react native for mobile, for example).
Learning from others is the best way to learn.
This is great article and I totally second making use of your commute time with podcasts or reading.
Podcasts has been my friend for last 4 years and I love that commute time and it adds to the knowledge big time.
Thanks for sharing your thoughts
Hi,
I am a technical editor from China.
I think your article is very good, I hope to get your consent to translate and share with Chinese developers, I will point out the source and author.
Hi and thanks for your kind words. Sure feel free to translate and share
Thanks!
In order to keep up with the articles, I strongly recommend this tool: github.com/dailynowco/daily. I've been using it since it was released and now I can't imagine living without it :D
Wow thank you for putting this together, this is very useful, it will take some time to go through all of this.
This is the result of a couple of years of work, wouldn't expect anyone to go through all of this. But on the other hand, I found some of these pretty common 😊
I find this article really enlightening and helpful. Thank you very much :)
To prepare for your frontend/javascript interview. You can look at this ebook I created with collections of commonly asked frontend questions with solution.
mohit8.gumroad.com/l/ygass