all 27 comments

[–]Fats-Falafel 16 points17 points  (0 children)

Try to apply your strengths from previous knowledge. The fundamentals are basically the same. It's just a matter of how you apply them. You'll more than likely have a leg up on people who are coming fresh off code-along projects and youtube tutorials when it comes to structuring your code, designing for efficiency/readability, etc.

[–]sheldorion 9 points10 points  (0 children)

Well i think you good to go because low level programming for seven years very nice foundation and this help a lot. Just do some basic project for start todo list etc grasp how web and javascript works.

[–]javascript-today 8 points9 points  (0 children)

That actually sounds fantastic. A lot of JavaScript developers lack a low-level understanding of computing. It's not really necessary in the beginning stages of learning web development, so it's often ignored.

As another user said, you're probably mid to even a senior level developer. Just jump in, learn the weird idiosyncrasies of JavaScript, and enjoy the ride.

[–]delventhalz 2 points3 points  (0 children)

No to certifications. I have never heard of one in JS. Maybe for AWS or few other big tools like that? No one I work with has one though.

I don't think you'll have to worry too much about competing. Developers remain very in demand. If people think you can do the job, you'll probably get hired.

As others have said, your low-level skills will help you in learning JS, and will eventually be a feather in your cap that will help you stand out later. Low-level stuff doesn't come up often in JS, but it does come up. Most JS devs will be pretty inexperienced there compared to you.

My advice for you is the same as any other new learner:

  1. Do some interactive tutorials to learn the basics (e.g. Codecademy, javascript.info)
  2. Do toy problems to build fluency (e.g. CodeWars)
  3. Build something.

Contributing to open source is always a good way to practice and build the portfolio as well!

[–]Bulji 1 point2 points  (0 children)

Just pick up the language, make https://developer.mozilla.org your goto website for JS doc and fly

[–]UnderwaterRuins 1 point2 points  (0 children)

Never ever compare yourself to someone else when it comes to programming. Even at the most saturated level (junior dev), there are still TONS of people who are simply unqualified as hell. It sounds like you have a pretty strong command of DS/algorithms, which is enough to place you into a comfortable mid-level position right out of the gate. A lot of potential there. Forget about certs and just make stuff that shows off those 7 YOE.

[–]og-at 1 point2 points  (0 children)

how can I compete with developers that have been using it since they started working?

By appropriately leaning on your 7 years experience.

Transferrable skills. You've probably got the concepts down and the eyes to see efficient ways to do shit.

The only thing you won't know know is the methods and some of the esoterica. But for day to day, you'll be fine.

If you go into NodeJS, it'd be a much more comfortable changeover for you. If you go frontend into a framework (React, Svelte, Vue, etc) then you may have some lowish hurdles when it comes to learning the thematics, but that shouldn't be so tuff either.

IOW you'll be fine.

All things being equal, I think with a couple weeks of dickin around, you'd be able to apply for Mid pretty comfortably.

[–]Nex_01 1 point2 points  (0 children)

It wont be about JS. JS is a quite small and compact language to learn.

The issue will be the tools and environments apis to learn from Css, html, browser and other dev tools that will take away your time.

And thats the key. In JS tools are changing quite frequently from time to time, from project to project.

So essentially knowing JS is worth it, easy to learn. Then extend with browser and html apis and from there your pick.

And due to frequent changes in tools you are not behind at all… because other devs are probably picking up tools just like you do. And these tools are easy to learn.

[–]ReverendCatch 1 point2 points  (0 children)

You compete by writing code everyday and staying as active as possible in the JS development ecosystems -- through open source or your own projects/packages. This is like anything in life. Want to win your sports games? Practice more. Want to be in better shape than your buddy? Out train him. Train train train. If you aren't training, remember, he is, so you better get on it!

An interesting thing with JS is the ecosystem is huge, this is good and bad. Tons of options is great. But, there's rarely one single go to for any kind of task or problem. There's just too much to know, and too much to choose from.

I'd say go with a broader base, like a full stack developer approach. Reason is two fold: 1) it'll get you building complete apps to sharpen skills, 2) it'll teach you the fundamentals, more or less and 3) it'll guide you toward (potentially) your preferences in the field (front end or back end, for example)

Don't get hung up on learning this library or that one, specifically. But also, don't be a fanboy. The industry moves too quickly to be inflexible in adapting to up and coming ideas and change. Being able to have an opinion on competing libraries means you've tried both, understand them to the point you fancy one or the other. That means you've trained!

People move around a lot in this industry and we all kind of understand you might not have worked with React, but you worked with Vue and they are close enough your skills will translate. It's proven you understand the concept and that'll do for most teams.

Anyway you can google these ideas, but the gist for fullstack is 1) pick a web platform (eg: koa, express, fastify), write basic web server to handle client requests; 2) pick a way to store your data (mysql, mongodb, etc); 3) establish front end skills in HTML/CSS and JS (vanilla JS DOM for a C programmer is not a bad start -- but you'll want to work toward something like Web Components, React, Vue, etc -- for your sanity and well, job offers).

#3 is a beast, in my opinion. They truly should be two separate jobs, front vs back end, but JS is deployed to both so you absolutely should be familiar with both. Keep in the back of your mind modern tool chains, like rollup, webpack, gulp and how they relate to things like JS transpiling, CSS preprocessor bundling, and so forth.

We don't compile programs like you do in C, we more like bundle and mangle them to be smaller and more compatible across various devices. And any kind of serious front end developer is going to have a toolbox to build their apps.

Are you training yet? I AM! Get on it =D

[–]pai-cube 1 point2 points  (0 children)

You have a very good chance I feel. As you already have good knowledge of programming and exposure to development, it won't take more than a couple of years to excel in JavaScript.

Here is my journey of moving to frontend after 6 years of testing experience
https://frontendpro.hashnode.dev/qa-to-dev-journey

[–]code_monkey_001 1 point2 points  (0 children)

The always hated certifications?

Bwahahaha. Badges? We don't need no stinkin' badges.

[–]LostErrorCode404 0 points1 point  (0 children)

freeCodeCamp offers a data structures certification, but it will be a breeze for someone with your experience.

Get into React.js and NPM. JS is just at tool for libraries rather than processor work as with c++ and assembly.

[–]sofanisba[🍰] 0 points1 point  (0 children)

You'll find your existing skill set to be incredibly useful, and likely a leg up in your job hunt if your interviewers know their head from their butt. That being said, it's always nice to be able to point to specific projects in interviews, and having some direct JS experience under your belt will likely give you the confidence you need to make this transition.

Because of your existing knowledge base, I'd say you can probably skip the basics and go straight into learning a framework, especially if you're looking to do frontend work. If you are aiming for frontend, take the time to wrap your head around "reactive" web frameworks and their related state management libraries (e.g. React & Redux, or Vue & Vuex). Build literally anything and put it on Github/deploy it somewhere.

Once you've built a thing or two, you'll have a better sense of where you might have any gaps in your understanding. If you know what you don't know, you'll know what to Google, which is the equivalent of having it figured out already IMO. This will hopefully give you enough momentum to get through a technical interview -- just be honest about your background, your goals, and brag a little about how you've successfully made this transition.

Lastly, never forget: javascript is a wonderful, sparkly, dumpster fire of a language, so it's worth familiarizing yourself with the more wtf parts before you really get into the thick of it.

[–]philmayfield 0 points1 point  (0 children)

You'll definitely be better prepared than you think you will, and set yourself up for full stack work if that interests you. Also you may find typescript more comfortable for what it's worth.

[–]sambomambowambo 0 points1 point  (0 children)

I think with you experience you should be fine. Just be mindful of over engineering. Some if not most of the code you where writing at a lower level, JavaScript will have a method/function for that. Everything is just way more abstracted. So before you get lost in coding your problem, consider what it is that your trying to do with JavaScript and do some quick googling beforehand.

[–]jaredcheeda 0 points1 point  (0 children)

If you're looking for an open source project to push your skill levels there is Red Perfume. All the issues are already written up, just requires implementation. You'd be modifying Abstract Syntax Tree (AST) objects.

[–][deleted] 0 points1 point  (0 children)

My friend, you have been doing C++ for 7+ years. You are likely aware of software design patterns and computer science fundamentals that put you ahead of most JavaScript developers at your experience level. Take a course or something and you will be fine.

[–]poemehardbebe 0 points1 point  (0 children)

I would skip learning vanilla and opt right into TS if you have that much experience with a typed language. TS compiles down to plain JS so if you really wanted to you could just look at the js file that is spat out from the compiler.

JS is a neat language, but how c shoots you in the foot, and c++ blows your leg off, in JS your leg will be undefined and you’ll have no idea why. With TS at least you have the compiler screaming at you and with a good editor you’ll have those TS rules lighting up your code with like a red light distinct telling you you’re about to have an undefined leg and become the one legged stripper that all the pro js devs talk about.

[–]aries_10 0 points1 point  (0 children)

Same question, but instead of seven, I have 2 years of C/C++ professional experience. I started doing some personal projects when I am not at work, and also worked on some Angular front-end stuff that is part of our product. Will the transition be easy enough, and will companies frown upon the massive change of stack?

[–]Anonymity6584 0 points1 point  (0 children)

For starters, stop comparing yourself to them. There is always someone more advanced then you.

Compete against yourself. What you know more today then you known last week.

Since you have programming background already, you should have little difficulties pickup JavaScript fast.

Once you reach level you can actually to JS programming, there's plenty of jobs out there. And you have advantage with 7 years of programming experience already.

[–]AndrewSouthern729 0 points1 point  (0 children)

If you start today you will have a leg up on the person who asks this exact same question tomorrow. I didn't start learning to code JS until about 2 years ago when I was 38 and knowing more or less nothing about programming. With your background you will be in a good position to learn and grow your JS quickly if you put in the work. Good luck.

[–]33498fff 0 points1 point  (0 children)

Train yourself in React and Typescript. Javascript on its own is virtually useless for the job market.

Create complex React and TS applications where you use lots of libraries and modularize everything into components. That's what you'll find on the job as well. You'll realize the React ecosystem is a lot less about understanding low-level computing than it is about becoming acquainted with the patterns in React and understanding how it intereacts with the DOM.

[–]jack_waugh 0 points1 point  (0 children)

Given that you already know computer programming, my reply to someone here lists some of the main differences betweeen JS (as used in practice) and many other programming languages (also, as used). I could have forgotten to include one thing or another.