How can I become a better developer?

Hey guys sorry for this vague question.

I've been a junior react dev for 2 years.

I'm very comfortable with Javascript, react, redux, webpack, ES6 etc

But I want to get a good job, for that I need in depth knowledge.

But I don't know what to learn anymore.

If anyone could suggest projects, topics, anything at all that will help me become a really good developer it'd really hell me out.

I don't wanna stay junior developer with limited knowledge my whole life. I u wanna contribute to open source, publish my own libraries but whenever I look at other's code to contribute it feels so complicated to me. I also wanna work as a freelancer at hackhands, codementor etc but I lack the skills.

Apologies for this broad question.

Learn Something New Everyday,
Connect With The Best Developers!

Sign Up Now!

& 500k+ others use Hashnode actively.

Marco Alka's photo

Go Vanilla. Did you ever try to write a whole page without any framework? Just HTML, CSS and JS, keeping each of them clean and separated (no CSS in JS, no JS on HTML, etc.)? Make it work on Safari 10, IE11, Edge, FF 35+ and Chrome 45+? Make sure it still looks good on smartphones? Check if it is progressive? And then, once everything works, optimize the whole thing using a build pipeline? Because that's the kind of stuff I have to deal with. I have been coding for 10+ years, and I still learn something new every day just by doing that.

If you think that's easy, then we can start talking about code architecture and tools. What kind of architectures, patterns and algorithms do you know? What's a dirty flag? A builder pattern? Do you know OOCSS? BEM? What's the difference between <b> and <strong>? How to do ARIA? How to XOR-encrypt (shuffle bits)?

If you know all that, then try to do something completely different. Go learn Rust and write a simple game of Pong or Snake, using OpenGL 4+. Just doing that will throw you into a whole new world of ideas and concepts which you can also use as a web dev.

Once you tried out all of that, you should probably not be a junior anymore and you will keep on growing with projects you do.

Also, don't forget to stay online, read blogs and questions and write answers. By talking about what you know, you can get others to confirm or correct your knowledge, which expands your horizon and makes you a better dev passively. In my time on Hashnode, I learned a lot just by writing answers like this one. The community here is awesome, so I recommend it wholeheartedly.

Show +1 replies
Marco Alka's photo

Software Engineer, Technical Consultant & Mentor

Mahaveer Nah, you're good! Just two little things:

no ES6 just old school JS

ES6 is VanillaJS. It's just a version ;)

Dont know about Dirt Flag, XOR-encyrpt though.

If you are weak in algorithms and patterns, I recommend reading up on them and trying them out. They can make your code go from a hassle to huiiii :D You don't have to know them by heart, but at least having heard about some and knowing what problems they solve is enough. You can google them anytime anyway. It's one of those places where trying out something entirely different can help you find out about new stuff. I recommend easy to read sites, like Game Programming Patterns (it's C++, but it has many pictures and the snippets are short and simple).

Maybe i should try to build an SPA

Give it a try and find out how stuff works under the hood. It's always cool to know how a library is probably implemented when using it, so you can use little tricks and get ahead of others!

Mark's photo

Currently focussed on [every programming languages and all of the projects]

Marco Alka I also enjoyed Game Programming Patterns. And that's coming from someone who doesn't like gamedev, C++ or books.

Mark's photo

You mention looking at open source projects and them being complicated. It sounds like you've found a great learning opportunity then! Often, larger projects will have some issues tagged 'good first issue' or something. Or find a slightly easier project, but do challenge yourself.

Another way to find out what to learn is to just go to codementor and look at what type of questions are popular and what you are missing to handle them. Surest way to prepare yourself to switch to that!

Mahaveer's photo

Web dev wannabe :D

Yeah i did look at OS Code for small libraries like rimraf. I understood most of the code but couldn't find anything to contribute.

I'll try my best to challenge myself, currently i've started implementing Data Structures and Algorithms cuz they are super hard for me. But i actually wanna learn how to build tools as well.

Thanks a ton for your answer :D

Mark's photo

Currently focussed on [every programming languages and all of the projects]

Mahaveer That's a good thing it practise too, and there's a lot of material about that. Maybe even give Hackerrank a try.

Milcah Halili's photo

As a junior developer, I focus on building everyday. I'm taking right now, I'm going to start, and I use and to brush up on basic concepts. has a free course on building responsive and mobile-first websites. Lastly, is a great resource for short videoes. I also have two web developer mentors whom I rely on for advice on how to become a better coder, to explain key concepts that I'm struggling to understand, and I also rely on online communities when I can't figure something out.

Mahaveer's photo

Web dev wannabe :D

Thanks for the answer. I did complete JS30 already. And i'm kinda sick of doing courses now. I've done Complete Web Dev Bootcamp by Colt Steele, Complete React,redux by Stephen Grider, Egghead's Course by Kent C Dodds and some others.

I dont know where to find a mentor though :D

Milcah Halili's photo

full stack web developer

I found my mentors just by building community and hanging out at events/meetups with likeminded people. I didn't necessarily look for them. They came to me because I genuinely wanted to make friends and connect with people. But I'm sure it helps if you tell your community that you're looking for a mentor, so they can help you find one. I found one of my mentors because I told a good friend that I was starting to code, and she basically said something to the effect of, "Here's my lead tech person. She's super busy, but please come to her for any advice you need."

Pooja Rathan's photo

Hi Mahaveer,

My recommendation to you would be to focus beyond your technical skills, focusing on your soft skills is as important to get ahead in your software developer career. The resources you should concentrate on are: -How to market yourself -Professionalism: skills overlooked by universities and some coding bootcamps -Keeping up with the developer community -Coding skills and tech interview preparation -System design skills -Continual Learning

I recommend this article from ButterCMS that is a great reference guide for any junior developer looking to get ahead in their career:

Jason Knight's photo

I gotta echo what Marco Alka said, learn to do everything you currently know how to do without the crutches that are frameworks. or in many cases they're not crutches, they're hobble skirts... in some cases they're even a sledgehammer to the shins ala "Misery"

Until you can do it without the frameworks, you aren't qualified to know if what the framework is doing is the correct way, most efficient way, or even the simplest way. This is why beginners should NEVER be allowed anywhere near "frameworks" and why MOST of the big fancy popular ones are -- to be brutally frank with a highly unpopular opinion -- incompetent nonsense.

More so if you take the time to learn those underlying langauges -- and to use them PROPERLY with full separation of concerns -- you may in fact find that EVERYTHING you've been sold on said frameworks is nothing more than one giant lie rooted in apathy, ignorance, and wishful thinking; propagated not through actual merit, but from the same propaganda techniques and psychological failings such as bandwagon, glittering generalities, transfer, and card stacking that are the cornerstone of most major popular delusions; from garden variety snake oil peddling to "monuments to the stupidity of mankind" such as faith.

How are you at working with proper semantics, FULL separation of presentation from content and behavior from content so you don't have HTML full of things that flat out don't belong there? How well does what you're working on handle if client-side in the browser scripting is blocked? What about users on non-screen media targets? Are you derping in classes presentationally like "text-center", "clearfix", or "w3-red" or are you keeping your HTML saying what things ARE, and not what you want them to look like.

REMEMBER, 99.99% of the time what things look like has ZERO business in your markup. Anyone telling you otherwise isn't qualified to be writing HTML, CSS, or JavaScript! Yes, that includes every single person making or using so-called "front-end" frameworks like bootcrap or w3.css. UTTERLY AND COMPLETELY UNQUALIFIED to write a single blasted line of HTML!!!

But Joe forbid anyone come right out and say any of that.

What can you do WITHOUT the frameworks?

Mahaveer's photo

Web dev wannabe :D

XD that was a nice answer thanks a lot,

Without frameworks i think i can make simple websites. But not SPA type. And i've not used CSS Frameworks too much btw. I write most CSS myself at work except the grid system.

Jason Knight's photo

The less code you use, the less there is to break

Mahaveer Thing is well written SPA's ("single page applications" should anyone who doesn't know what that is reads this) in most cases should -- if the plan is for users to use it in a browser and not in a standalone like nw.js or electron -- be written FIRST as a static multi-page website.

That might sound odd, but good JavaScript should ENHANCE an already working page's functionality, not supplant it or be the only means of providing it. If you divide up the content and template properly server-side, there is rarely a legitimate reason you can't enhance a multi-page site into acting as a SPA. In fact it can be SIMPLER to implement it that way in many cases because it lest you build progressively.

... and progressive enhancement is one of the keys to making sites that gracefully degrade be it for device limitations or accessibility.

As the old saying goes:

"If you can't build a fully functioning website without client-side JavaScript first, you likely have no business adding scripting to it."

That's really where a lot of the whole CSR (client side rendering) thing goes bits-up face down, resulting in websites that are nothing more than a giant middle finger to users with accessibility needs or who have scripting blocked/disabled/unavailable for whatever reason. reasons like locked down workplaces, blocking scripts due to bandwidth limitations, just plain not trusting it...

But again, if building standalone apps for electron, metro, nw.js, etc, the above doesn't really apply since no scripting, no application... but if it's going to be run in a normal browser by normal users, well.

I think that -- along with a lack of grasping semantics and separation of presentation from content -- is where a lot of people screw up using web technologies. Hence why SO many websites unintentionally tell users with accessibility needs to sod off; pathetic when meeting accessibility needs is one of the core concepts of what HTML is even for.

Of course we'd have even less of said problem if people would just take HTML seriously, instead of scoffing at it for "not being a real programming language" or being "so easy". If it's so blasted easy why do dev's -- including many alleged "experts" -- screw up so much and end up utterly ignorant of the most basic concepts of it?!?

Want to read more?

Browse featured discussions

© 2020 · Hashnode