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.

Write your answer…

5 answers

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 all replies

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

Reply to this…

Hashnode is building a friendly and inclusive dev community. Come jump on the bandwagon!

  • 💬 A beginner friendly place

  • 🧠 Stay in the loop and grow your knowledge

  • 🍕 >500K developers share programming wisdom here

  • ❤️ Support the growing dev community!

Register ( 500k+ developers strong 👊)

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!

Show all replies

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

Reply to this…

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?

High Five1
Show all replies

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?!?

Reply to this…

As a junior developer, I focus on building everyday. I'm taking JavaScript30.com right now, I'm going to start CodeWars.com, and I use CodeAcademy.com and GetMimo.com to brush up on basic concepts. Udacity.com has a free course on building responsive and mobile-first websites. Lastly, Egghead.io 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.

Show all replies

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."

Reply to this…

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: buttercms.com/blog/best-skills-for-junior-d..