I have become relatively comfortable with JavaScript and Node. Can do basic scripting with Python and starting to dig into Java to have at least one lower level language. I’m a beginner in all of these but I feel like I am finally comfortable enough with code to start contributing to open source and building on my own.
I’m 27 with an analytical science PhD who would have enjoyed a CS degree.
That said my current aim is to start as junior at a company I admire. More Stripe than Big4 but I understand the former is a stretch.
Outside of the soft skills track, what’s the bes dev decisions I can make today to be hired 1 year from now as a software engineer at a respectable high fidelity company?
Also interested in thoughts re committing to Java or picking up FP Haskell/Clojure.
Appreciate anyone who will take the time to answer the oldest question in the book.
Currently going through Cracking the Coding Interview. It’s thought but I feel like it hits the necessary fundamentals.
With so much demand for programmers you can probably get your foot in the door with a PhD and some code samples, if you can get through the interview process. Not every company does the grueling whiteboard coding and puzzle interviews.
The best way to get a job as I've answered here x^N times is through people you know. If you approach getting a job by filling out online applications you are playing a lottery and competing with thousands of other applicants. Your application will get screened by keyword-matching software and maybe looked at by HR staff. Better to go around that process through contacts. Ask everyone you know about jobs where they work, and make a point of meeting more people in the business by going to meetups, tech talks, etc. You probably have a lot of contacts from school, talk to them.
At this point in your career I would suggest getting fairly deep with one combination of language, frameworks, tools that are most widely used: JS/Node/React, PHP/Laravel, Python/Django/ML, Java/*, etc. It's good to learn other languages but the market for Haskell and Clojure (for example) is much smaller and the people going for those jobs will almost certainly have significant real-world experience. I have recommended learning SQL and C as foundational skills, I think you will need to understand databases. You don't need to know C at this point (that's a real low-level language). If you plan to get into web development there's no way around learning HTML, CSS, and at least the basics of the HTTP protocol.
You will have to know version control (git) and at least the agile buzzwords pretty much anywhere you go. It helps to know your way around the Unix/Linux shell (command line) and the common tools. You should get proficient with at least one programming editor and an IDE.
I wrote a long-ish article about job hunting and interviewing a while back. It's been a while since I interviewed for a job, and even longer since I worked in Silicon Valley, but you might find something useful.
Nevertheless, my suggestion would be to identify the companies that could best use your analytical science knowledge and expertise and then approach them directly. This path is more or less what many PhDs have used to land jobs in the brokering/funds industries. Combining two strong skills makes you a more appealing hire.