Minimum requirement to be an employable junior web developer

Hi, I am trying to make a list of “required knowledge” to be an employable junior developer. After some research on job market in the UK and Canada, the following is a summary of what I came up with:

Front-end: HTML, CSS, JS, Django (Python), Flask (Python framework)
Back-end: Node.js, PHP,
TypeScript: Angular
JavaScript libraries: React, Redux, Vue
Database: SQL, PostgreSQL, MySQL, MongoDB
Container: Docker, Kubernetes,
Cloud: AWS
Programming principle: Agile
Programming paradigm: functional programming, OOP, TDD
Something else: Lambda (Serverless technology), Restful API

My question is that, am I getting the picture right? What else should be added/taken out from the above list? Many thanks.

(p.s. I might get the categories wrong as I am not familiar with all those, please correct me if so.)

1 Like

That is an impossible to answer. The “minimum”? It would depend.

The list you have is a list of technologies. Do you mean that all of those are required to get and entry level position? Not at all. Some of those are “redundant”, like having React, Angular, and Vue - those all do basically the same thing. You have Node and PHP - those are both backends. There may be some jobs that require both, but I think most would require one, many, many jobs would want a different backend, and some would require none.

In general terms, if I were to make a list, I’d want the following:

  • solid HTML, CSS, and JS
  • at least one modern view library (React, Angular, maybe Vue)
  • build some good frontend projects with the above, preferably not just tutorial and lesson stuff, but some stuff conceived and designed by you - it doesn’t have to be an amazing idea, just well coded
  • learn some basic backend and have a credible fullstack
  • build a few fullstack projects

By the way, the FCC curriculum gives you the foundations of a solid MERN stack.

After that, I’d want you to keep learning, building new things, work on some open source, team up with some other developers, etc.

After about step 3 above you could start applying. But the further down the list you get, the better your odds.

10 Likes

Hey there,

I am not too familiar with Django and Flask (used intermittently), but I would say they are both backend-related, not frontend.

Also, I am not sure what Angular has to do with TypeScript, or why you have TypeScript as a key in your table. TypeScript is a superset of JavaScript, and Angular is typically grouped with React and Vue.

Maybe you could add something like:
Static Typing: TypeScript

Or:
Compiled Language: TypeScript

Just thought I would add that

Yeah, that struck me as odd too, I think maybe TS and Angular were grouped together because it is common for Angular developers to write in TS.

To become a employable junior you missed some stuff:

Svelte, Laravel, C, C++. Some people would add Fortran and Cobol, but I think that would be too much.
I would also add Java, Spring, Kafka and RabbitMQ.
Nowadays AWS isn’t all you need in the cloud, you should also learn Azure and GCP.
Most of the times Juniors also have to administrate Linux Servers, so you should at least be proficient in Debian, Ubuntu, CentOS and Arch and know how to write shell scripts.

If you go the lazy route and invest only 40-50h per week, you should have these skills in 10y and start your first job. Good luck :+1:

2 Likes

Perl is something that’s really important that everyone seems to have missed. And some other scripting languages (like TCL) in addition to bash, as well as Awk and Sed. Functional programming is really important, so knowing Haskell is a must. And afaik I juniors generally need to know at least Go, Kotlin, Swift and Rust just to cover the more recent languages bracket. Also Unity and Unreal Engine in case they’re asked to make some games (and in turn, they’ll need to know Blender to make the assets for them).

(/s if you hadn’t got that @kennykenny.l – you don’t need to know most of the technologies you listed, as covered in some of the other answers. Trying to learn all of them off your own back & get good at them all will likely take you years, for no benefit)

you mean 10 years? i am not sure why need to learn so many, i am noob

Hi @sharid!

@miku86’s point was that you don’t need to know that stuff to become employable as a junior.

The employer would have to be insane to demand that from a junior.

The only way you could possibly learn all of that stuff on @miku86’s list is over a 10 year period which at that point you are definitely not a junior anymore.

Oh Thanks :slight_smile: understood now

I would look to @kevinSmith’s answer on what is realistic for aspiring junior devs.

Did you forget punch card too?

2 Likes

You may also want to be ready to a nuclear war and assemble a computer from garbage. That is also a useful skill on the resume. Look for “Collapse OS” project.

As kevinSmith pointed out, Angular, React, and Vue are all the same sort of thing. You do not need to learn all 3, only one of them, well at least at first, anyway. React is probably the most popular of the 3 in industry right now.

Django and Flask are both Python back-end frameworks as already stated. You do not need to learn both of them either, since they are also the same type of thing. Pick one of them. Flask is said to be more accessible to beginners (I’m not familiar with it, so can’t speak to that personally).

If your goal is to learn an all-JavaScript stack, you do not need to learn PHP. Node.js would suffice.

TypeScript is a superset of JavaScript and is no longer tied specifically to Angular as it used to be, as it now has support in React and Vue. While it is now “required” in Angular, it’s optional in React and Vue. So you don’t have to learn it yet.

There are generally two kinds of databases - SQL (i.e. MySQL, PostgreSQL, SQL Server) and NoSQL (MongoDB, Redis, et al). The only thing you should learn first as far as databases go is SQL in general (relational databases are still very prolific today) and how NoSQL databases are different. MongoDB and Redis are prevalent today, you can pick either one to explore further.

Containers and DevOps-related topics like Docker and Kubernetes are typically relegated to an entirely different type of job position than your typical dev position. While it can be useful to learn those eventually, you can totally skip those if you’re just interested in only web development.

You don’t need to learn anything about AWS at first as a web developer. That will likely come eventually at some point, but you can skip that when you’re starting out.

Agile is a nebulous term that can mean a lot of things. But you don’t need to know very much about it to be employable. A lot of it will be naturally learned on the job.

Functional programming and OOP are things you’ll naturally learn as you learn more about JavaScript. TDD will also come naturally at a later point in time. No point in stressing over any of these things.

You should know what RESTful APIs are and how to consume from them to be considered job ready.

Finally I defer to a previous post on this exact question: How do you know when you are ready to apply to jobs? - #2 by astv99

1 Like

Many thanks astv99, your answer really helps filtering out where a newbie likes me should focus on.

I have been doing the responsive web design course on freeCodeCamp for two weeks. I found the concept and the languages itself (html, css) are easy to grasp (I consider myself proficient in Python, reckon that helps), so the technical aspect I do not worry much at this stage.

But I was thinking will the lack of talent in design and artistic aspect in general (e.g. putting colors in a good match) be a problem in career development?

The vast, vast majority of developers are not and have no need to be skilled in design, it’s a completely different specialisation. Not having those skills is likely to have zero effect on career development as a programmer.

1 Like

Exactly what DanCouper said, and almost all companies hire separately for designers vs developers. No one person will be expected to have both design & development skills. Pretty much the only scenarios in which it might be useful to have both skills are if/when you’re starting your own business/project/app, or working for a brand-new startup in which you’d be the sole person for design & development. And as you might imagine, you’d need to be very good at both at that stage.

2 Likes