13

I've learned HTML, CSS, JQuery and some Javascript so far. When I was getting into web development, a friend of mine who has been working as a developer for a few years told me that if I learn the above mentioned programming languages, I could land a job easily.

However every job I ran into so far requires either SASS and LESS, Javascript frameworks or libraries (Angular, React, Node, JSON etc), or Wordpress, or PHP and SQL and a lot of other languages/frameworks.

Im not asking what to learn exactly, cause I know those questions are difficult to answer. My question is, is it possible to find a job with the languages I know so far? Or do I really need to know 15 000 languages, frameworks, libraries and what not?

I was planning to learn PHP and SQL somewhere in the future, but based on what I saw, even that is going to be insufficient.

closed as off-topic by gnat, PagMax, Rory Alsop, Jenny D, Masked Man Feb 27 '18 at 12:01

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking for advice on a specific choice, such as what job to take or what skills to learn, are difficult to answer objectively and are rarely useful for anyone else. Instead of asking which decision to make, try asking how to make the decision, or for more specific details about one element of the decision. (More information)" – gnat, PagMax, Rory Alsop, Jenny D, Masked Man
If this question can be reworded to fit the rules in the help center, please edit the question.

  • 7
    As a developer, you will always have to keep your tools sharp and keep an eye out for new ones to add to your tool chest. I think you're being a bit distortive with your worry. You only mentioned one piece of technology that classifies as a programming language(...and an interpreted one at that) and you talk about "15k" things. Try picking up a 2nd language then maybe worry about 5. In today's climate, knowing React or Angular is going to widen your pool of opportunities. Yes, you need to know "a lot." But if you learn ground up from first principles, picking up a new syntax is a breeze. – K. Alan Bates Feb 27 '18 at 5:33
  • 1
    You need to learn even more than that (and for decades). Read norvig.com/21-days.html which has a very useful insight. And concepts and experience are more important than superficial knowledge. I also recommend actively contributing to some free software project. BTW, read SICP, use some linux distribution since they are very developer-friendly and made of free software. – Basile Starynkevitch Feb 27 '18 at 7:18
  • 8
    When you are a software developer, then the day you stop learning new technologies is the day you go into retirement. – Philipp Feb 27 '18 at 10:17
  • 3
    Welcome to the era of knowledge-based economy. The more knowledge you get, the more value you have. And while other commenters insisted rightfully upon technical knowledge, I'd say that functional knowledge is important too for your career(Whatever domain you are working in, I'm doing hospital software, and I'm always learning new things about hospital accounting or drug orders - I have to). – gazzz0x2z Feb 27 '18 at 10:49
  • 2
    @ayrtonclark whatever we think we programmers of PHP, the market might not care :) – Walfrat Feb 27 '18 at 12:39
15

I think a big issue here is what it means "you know" the language. I.e. if you studied a book about the syntax of the language you can claim you know it. But do you know it in theory or do you know how to use it efficiently. And how much experience do you have using it efficiently?

Lots of people (not directed at you) claim they know a language but in reality they know just a little about it. Maybe for certain jobs that little is good enough, it depends.

I suggest you get a job with a real project as soon as possible and learn on the job. There is a lot more than just "knowing the language". It seems you know enough to start working. Do it and then continue to learn all the new things you need to know - and never stop learning.

  • 12
    Hi Edgar, correct me if I'm wrong, but the OP is currently not being hired. So asking him to "get a job with a real project" does not answer the question, don't you think? On a different note, would contributing to reputed Open Source projects in the meanwhile also qualify as relevant experience according to you? – ValarMorghulis Feb 27 '18 at 3:46
  • @ValarMorghulis: He writes "My question is, is it possible to find a job with the languages I know so far?" that sounds for me very much like he wants to get hired. According to me, and I am no authoritative source, Open Source sure counts as experience. But I also know it is a different experience then a commercial project. Any experience is good, real life experience is better, and different kinds of experience and a lot of it is perfect. – Edgar Feb 27 '18 at 9:09
  • << learn on the job.>> that is 100% true but now explain it to an employer they want some one who magically can start developing at 100% from day 1. – kifli Feb 27 '18 at 11:11
  • @kifli: A smart employer knows this. And you don't want to work for a stupid employer. But a smart employee should also understand that a beginner who has to learn a lot (independent of the programming language) will get paid less than someone who has already experience. – Edgar Feb 27 '18 at 11:20
  • Today's programming gotten to "jack of all, master of none." It used to be that specific languages got you a job and kept you a job until retirement. Good examples being COBOL or Fortan or even assembly and C during the 80s and 90s. Now you have to know a lot more than you used to but it's quick to move on from that. So knowing concepts are better than being too tied into anything. – Dan Feb 27 '18 at 18:37
14

What I think you misunderstand is working knowledge versus book knowledge. When someone says "Do you know (insert a language) well?" he doesn't mean "Have you memorized every bit of documentation, know all the overloads of every function etc.". They usually mean "Can you look at the code and easily (identify flaws/introduce changes/fix bugs/refactor/etc.)? Can you make an informed decision on what tools to use for a given scenario? Can you outline the advantages and disadvantages of proposed solutions?".

Many languages are nearly identical in the general idea: syntax may be different, a few concepts done differently and some of the caveats are unique to a language, but if you know for example C# well, you would have little trouble if someone asked you to do something in Java.

You need to keep your knowledge current: again, it doesn't mean that if a new framework comes out, you need to know it by heart in the next week - but the knowledge that such a framework exists, what are it's advantages over competing solutions, what scenario would that framework be used in and in what scenarios it shouldn't be used etc. That's, in my understanding, keeping your knowledge current. If on top of that you can type the code without the use of any aid such as documentation, more power to you - but do remember that it's not the main thing.

Knowing a solution is ok. Knowing there are 10 possible solutions, their strengths and weaknesses, where to find their implementation - that's even better.

It is possible to find a job with what you know so far - albeit it will probably will not be a job of your dreams. You should however strive to find a job that offers you:

  1. An opportunity to apply your current skills in a real-world scenario
  2. An opportunity to learn the use of other skills, preferably from someone more senior than you. And i don't mean only strict technical abilities - so called "soft-skills" are just as important. Many developers starting their careers dismiss the idea that communication, understanding of business requirements, negotiation, assessing time-and-money investments required and simillar are necessary for their career growth. Don't make that mistake.

I want to end with a statement that may be true only in my region (Eastern Europe):

When it comes to job offer "requirements" section, you can often come across postings that seems to require you to be a combination of embedded programmer, web designer, application architect, mobile developer, database administrator and it wouldn't hurt if you would be a sysadmin also. Don't be disheartened by those offers, many times people writing them just copy-paste whatever google returned as "smart sounding programming words". If the job description sounds interesting to you, apply and assess the job-offer personally - ideally after an interview with someone "technical"

  • 2
    Spot on answer and your last point holds true in the UK too. Most job descriptions are wish lists at best and, as you say, often put together by people a long way from reality. Good companies are looking for good people and a good person is a good person even if they don't happen to have worked with Technology X yet – Dan Feb 27 '18 at 11:44
5

So.

Your question is not quite right, but i appreciate that the restrictions placed here have put you in a tough spot.

Will you be able to find work with html/css/and some js? Guaranteed yes.

Will it pay you your desired salary and be in a city you want to work in? Probably not.

The crux of my answer to you is this: It is much easier to get a well paying job in a latest technology, than in an older technology.

When you're a senior developer, people will pay you more for mastery of js, html, css + jquery. You don't need to know node or whatever to get a job. But the more junior you are, the more necessary it becomes to know the latest tech.

The reason? Because most people don't keep up, so you end up with a lot of js and jquery developers - 10+ years of them - clogging up the js & javascript vacancies.

There are less and less, however, who know node & angular and the more recent things.

The best thing a young developer can do is ignore the old technologies - although maybe not HTML &CSS as that takes about a week to learn - and learn some new fancy framework.

Php7 or 8 just came out? Learn that. Angular, i don't know, 3? Learn that. Learn the newest thing - because then you have

  1. less competition
  2. less people able to interview you (they won't know it well enough!)

This makes it much much easier to get a job.

So, to answer you question: No. You do not have to know A LOT. But if you want your pick of jobs, learn the latest technology in a particular discipline.

Note: I'm troubled that you put "Jquery and some javascript", it should, ideally, be the other way around. Also, the skills you mention were really good to have about 7 or so years ago. Now the entire front-end ecosystem has moved on a bit.

  • 4
    Then again, as you mention, if you know JavaScript well enough then there is not that much of a curve to learn the latest shiny new JS framework (which changes every 3 months :D). The latest trend seems to be the second coming of functional programming in Node.js – Juha Untinen Feb 27 '18 at 6:09
  • @juha yes you're right, I thought I made that more explicit, but I did not. know the basics (html, css, js) THEN learn a fancy framework – bharal Feb 27 '18 at 6:13
  • 1
    "When you're a senior developer, people will pay you more for mastery of js, html, css + jquery." More than that, when you're a senior developer, people will generally pay you more for a mastery of the big picture questions. There'll generally be less grunt work (other than, e.g., proofs of concept), and more looking at major architectural decisions. Those, and even more so the how to decide which architecture might be right for the product your employer is building, change far more slowly than what happens to be the latest and greatest in frameworks for the day. – a CVn Feb 27 '18 at 7:43
4

You are starting a career as a knowledge worker. So not only are you expected to know A LOT, you are expected to continue learning new tools for the rest of your working life.

You are going to be a member of one of the fastest growing and changing industries there are, so you will be learning new languages, libraries, frameworks and other ways or working every year. You might have enough knowledge now to find a low-level job somewhere (if you're not too picky), but if you want to build a good career in software development, willingness to learn is the number 1 skill you'll need.

If that idea scares you, you should really reconsider if this is the long-term career you want to pursue.

2

I will go on the opposite side of others about learning again and again.

In my opinion you don't need to know tons of language, you need to have learned and practice enough of them in order to feel confident about your current skills and developing new ones.

So first, don't lose yourself by going everywhere, you will just be mediocre everwhere producing "working" and unmaintenable things. Choose some stuff, up to date but that already lived some years and is still active, build good fundation and then look to extend your knowledge where you want/need it.

So for web, pick up client-side technology, server-side, database-side, work up on it enough so that you can discuss them confidently in interviews.

After your fondation are good enough, it's up to you (and the market) how much you want to take a whole set of new technologies or/and keep up-to-date the current ones.

Also note that if you yet didn't works with frameworks, the 1st one you will pick is hard because it's the first once you will have see two or three, it will be far easier. Note that you might also be unlucky and really end up in a crappy framework (special mention to inner-company ones).

They're tons of things that are alike in computering, the rest is just about adapting.

  • 3
    "that you're sure will live some years" -> good luck with that ;) – Erik Feb 27 '18 at 10:43
  • Yes I guess I should have said the opposite, "already lived some years and it still active". – Walfrat Feb 27 '18 at 12:37

Not the answer you're looking for? Browse other questions tagged or ask your own question.