Readit News logoReadit News
Posted by u/crmax 6 years ago
Ask HN: Absolute noob here, what programming language to learn to land job with?
Barelly making it out of high school, no real chance to land a college but will ofc try, but I see lot of companies looking for junior positions in PHP or Java in my country, and its very well paid. What has coding language/skill has the best ratio of difficulty to master and application to land a job? PHP or Java or any other? Please help.
dilippkumar · 6 years ago
When I have had to filter a pile of fresh collage graduate resumes to pick 2 candidates to call for a phone interview, I did not check for which specific programming language they knew. In my experience, most people pick up 80% or more of their programming skills at their first job.

What always caught my attention when giving through these projects was any project they had worked on. The actual project didn't matter so much. But almost always, how well they were able to understand what they worked on directly translated to their ability to present it in simple and concise few sentences.

Putting these pieces together - my advice is to go find something you want to build and build it. You'll figure out the best language, the libraries to use and all the good stuff on the context of figuring out how to build what you want to build.

The only real skills I strongly recommend you learn:

- git

- Makefile

- shell scripting

Bonus if you can run Linux on your primary computer. You'll learn a lot from just using a Linux box for daily use.

Go build something for fun. Write a text adventure game. Write a Sudoku solver. Write a reddit bot to count how many times someone said "wubalubadubdub" per day.

At some point, you'll have to transition from fun projects to projects that will look good on a resume. Keep that in mind and don't get lost in the woods and forget that you are on a mission.

Happy coding!

muzani · 6 years ago
So far all the jobs I took, it was not knowing the language and picking it up on the job. First job: PHP, Yii, Java, Android (I had a C/C++ EE background). Second job: cobbling together the whole back end. Third: JavaScript/Node. Fourth: Angular. Fifth: Cordova.

I actually crammed C# for two weeks for another job, but didn't get that one. In most of these jobs, it took about 1-3 days to start writing useful code.

I guess you could come in with 5 years of experience in something, but if they like you enough, you'll figure it out. Skill in a language or architecture also doesn't mean you have skill with the code itself. Like a language, the best way to learn is immersion.

sheepybloke · 6 years ago
I completely agree with this! In the end, languages are fairly straightforward to learn, but the skills learned in projects like architecture, design, and problem solving are what will actually land you the job. You can teach anyone to code, but you can’t teach everyone to be an engineer, which are the skills companies want and projects develop.
slipwalker · 6 years ago
also recommend a strong understanding of SQL ( https://training-nyc.com/learn/sql/why-learn-sql )
yash8141 · 6 years ago
Hi, are you hiring?Because I am looking for internship.I can send you my resume if you are.
WheelsAtLarge · 6 years ago
I would learn Java first. It's very easy to learn very poor programing habits with PHP. Yes, it's easier to learn but longterm it will be harder to move forward. Especially since developers need to continually learn new stuff.

I would learn C first since so many languages are based on C and the move on to Java. You'll want to take shortcuts ,don't. It's best you define a structure on how you will learn new stuff from the start.

Here's something to think about.

I've learned that you need to set a schedule and get out of the house to get things done.

So, here's the actions to take:

1) Decide what you want to learn.

2) Make a plan on how you will achieve it.

  2a)Find a learning source

  2b) Define a project that you will create. It does not have to be unique.
Unless you have something in mind just copy something or someone.

  2c) Set a deadline. It should be relatively short. 1 to 1.5 months. Don't try to learn everything. 
But make it a challenge.

3) Find a place where you will study. Not at home and it should have limited internet access.

4) Set a schedule. Maybe, every day from 6 to 7

5) Set 1 day for study and the next day for action and review and work time on your project.

6) Follow thru

The big key is that you need to get out of the house and you need to keep a schedule. It's very hard to stay disciplined at home.

crmax · 6 years ago
I feel like I'm reading a cheatcode for life, is this even legal? Thank you very much for a very usefull info, will try my best!
gtm1260 · 6 years ago
I would suggest Python first. 1 there are a lot people hiring python eng right? At least according to what I saw on s/o developer survey. Anyways, I think that it's a lot easier to become a productive python developer than a java developer. Python's syntax is simpler, and it's so much easier to tap into all the libraries through pip than any kind of gradle build or IDE setup, especially for a beginner. I think this is important for any new programmer, to learn the fundamentals, yes, but also learn how to use libraries and quickly build new projects which is what may end up getting you a job anyways right?
saluki · 6 years ago
What country are you in? I would check your job listings and see what is in demand. Do you know anyone who is a developer. Finding a job usually comes through your network. So see if anyone knows a developer or works at a company that might hire you.

I would lean toward Rails(ruby) or Laravel (PHP).

Those are frameworks. Laravel might even be more in demand now and easier to get in to.

If you're just getting started learn some HTML and CSS. Head First HTML and CSS is a good book.

Next they have a Head First PHP and MySQL book that is good.

Once you completed those start building some simple apps on your own. Sign up for a basic hosting account and learn about setting up a domain, pointing the A record to the server, etc. FTP the files up.

After that signup for Laracasts.com, there are great tutorials, sign up for a Github account, start going through the courses on Laracasts.

I would recommend using a macbook if possible, or start saving up for one or see if someone can pass a used one along to you, it just makes the tutorials easier. When I've tried to use windows in the past it's possible but seems like you run in to windows only issues that take hours to resolve on a regular basis.

For hosting at this point go through the laracast tutorial on Forge, it's a server setup/deployment tool, it makes setting up droplets on Digital Ocean for Laravel super easy. If you're just learning you could sign up for a trial and just learn how to spin up the server, you could still ssh in to the droplet and deploy with the command line after you cancel your forge subscription.

So going through these steps you should have a pretty good handle on setting up websites and starting to develop web applications. You'll probably still need someone to recommend you that knows you and works at a company.

Good luck.

Dead Comment

sixQuarks · 6 years ago
I finally learned how to program at the ripe old age of 42.

I would advise you to start with HTML/CSS first if you don't know that. Then Javascript - because javascript is used everywhere now.

Best intro course to javascript: Many people will tell you books like Eloquent Javascript is the best, but that book will confuse the hell out of you if you're a complete noob. Sure it's great once you get a handle on things, but it will be frustrating to try to learn from it at first.

Here's the best intro course: https://watchandcode.com/p/practical-javascript

Then after you get a hang of it, I recommend Udemy courses by Colt Steel. You can start with the Web Developer's Bootcamp:

https://www.udemy.com/course/the-web-developer-bootcamp/

This is basically what I started with

reyntime · 6 years ago
SQL. From what I can tell it'll be around for a long while, and so many companies require skills in data extraction and analysis. Not to mention that most apps built with a front-end framework will usually interface with their database using an SQL-like language. Data underpins most of the value in tech; learn how to manipulate and analyse it with a language like SQL.
phynax · 6 years ago
Personally I’d go with JavaScript, easy to learn ( lots of online courses ) and if you learn something like react / angular you will be pretty well sought after.

Source: I’ve been a web dev / CTO for the past 15 years and this is what I really need right now.

Your likely going to be working on webapps and not desktop apps though.

phynax · 6 years ago
Oh and pick something that interests you and make a personal project out of it, use this as your portfolio - extra credit if it solves a real world problem and you can get this across in an interview, a programmer with business sense is worth a lot more than one without ( to me anyway )
eldacila · 6 years ago
I'd suggest you make a spreadsheet with as many job postings on programming that are near you as you can find (this shouldn't take longer than an afternoon), and learn the most listed language if all you want is to get an entry-level job

if you want to get better and better, you should keep learning other languages (1 every 1 or 2 years should be good enough), knowing 1 language in every paradigm will get you to think about what is possible in other languages, and satisfaction of knowing something new :P

I personally would recommend Python + C to get something high level that can get you to be productive fast, and something that makes you understand that goes into making that at a lower level (without going as low as Assembly), and I think both are good options because they're pretty much here to stay (you might hear some say that you should focus on more modern stuff than C, but there's a pretty good reason it's still here, it works, and it is fast)

and then learning stuff that'll feel weird, LISP, and Prolog, (if you go with this suggestion, when you "finish", you should be 4~6 years in, so try to learn other stuff along the way, like SQL, shell scripting, fundamentals of files and processes, networking (how it works, not necessarily implementing it), software architecture, etc. but focus on what is interesting and useful to you)