HACKER Q&A
📣 imperistan

Necessary Skills for a Junior Dev


Hello HN, Long time lurker here. I'm an online marketeer. For a while now I'm a hobbyist PHP dev. I enjoy it a lot, but obviously my experience is limited. I've created some small projects in object oriented PHP.

Anyway, i'm thinking about trying to get a job as a junior PHP dev. What skills do you think are necesarry to succeed? It's probably a bit hard to put in text - I mean, how do you quantify the skill level you need? Still i'm very curious what you think.

By the way, I've always coded solo. So no experience in working in a team of devs. Also, i've never worked on a project that I didn't start myself. So no experience in working in an existing code base. Do you think that's a problem?

Thanks! Imperistan


  👤 jaredcnance Accepted Answer ✓
In general, learning to learn and be patient with the process. Based on your specific context, I’d also recommend reading code, a lot of it. There’s definitely a difference between designing and writing software in isolation and jumping into a new code base. Learn about what it is supposed to do and why, then spend a lot of time reading the code to learn the how. Also, beware of being overly critical without the history and context behind things—but, learn from the mistakes made previously and raise the quality bar by example.

👤 giantg2
Two biggest skills - asking good questions and listening to answers/directions.

👤 Jugurtha
Hi. Here's a reply[0] to someone wanting to get a foot in the door as a Python developer from two weeks ago. That reply also contains link, especially the "index reply"[1] which itself contains links to useful posts on how to learn a codebase, how to be useful to the team, product development, etc.

- [0]: https://news.ycombinator.com/item?id=25663423

- [1]: https://news.ycombinator.com/item?id=25367011


👤 austincheney
* Writing. Be able to communicate and document.

* Data Structures. An understanding of how to package and access data in your code is more important than any junior can possibly understand.

* Standards. Learn the foundational rules that define your technology. Shitty people will tell you this isn’t important, so keep that in mind.

* Stupidity Avoidance. Solve hard problems first. Observe your peers who can’t solve hard problems.


👤 poletopole
I’m a senior developer and I’ve trained a few junior developers over the years. Here’s the technologies/skills you will likely be expected to know in 2021:

Backend:

1. PHP 8, Composer, with some framework such as Laravel.

2. SQL with some relational DB such as MySQL.

3. Unix shell scripting (Bash).

4. Docker and Linux familiarity.

5. General knowledge of AWS services.

6. Either Apache or Ngnix.

7. JSON, XML, YAML.

8. Some PHP unit testing framework.

9. Git

Frontend:

1. ECMAScript 7 and probably Typescript.

2. Vanilla JS/DOM API.

3. Node.js and a toolchain like Webpack.

4. CSS3 and HTML5 and probably SCSS.

5. React and friends.

6. JQuery and friends.

7. Framework such as Bootstrap (but there many others).

8. Unit testing framework such as Cypress.

Networking:

1. HTTPS 3 (RESTful).

2. TCP/IP.

3. DNS.

4. SMTP.

5. FTP.

6. SSH.

A general knowledge of the field of networking will help but you don’t have to be an expert, just take a networking course on Udemy.

Security:

1. SSL certificates.

2. OAuth.

3. OpenSSL and RSA key generation.

4. Linux hardening such as firewall configuration.

5. JWT.

A general knowledge of things like hashing and salting passwords, encrypting cookies and not storing API keys in the codebase, and a knowledge of common hacks in the field is expected.

If you don’t have any experience then build some small service and do a few github projects. Personally I would limit your job search to Craigslist since employers have lower standards there.

One trick that got my foot in the door was I took a data entry job and after a month or two I automated my job away (which only took a weekend to do) and listed that job as a software role.


👤 brudgers
Just get a job if you can. The biggest asset for job hunting is experience. No amount of preparation can change that. good luck.