by madmonk on 11/19/22, 4:45 AM with 27 comments
I've just purchased several udemy courses on computer science and various languages. Can anyone suggest any other ways to fill the gaps in my knowledge? Specifically, I'm looking for:
Books
Blogs
Podcasts
Online Courses
Any other tips
Thanks!
EDIT: The "Professional" descriptor in the title isn't referring to corporate office professionalism. I'm more referring to professional proficiency.
by nivertech on 11/19/22, 6:30 AM
Being on the both sides, I know how hard is to work with the cowboy coders / lone wolfs, especially if they're introverted.
Inheriting a project written by a cowboy coder might be a nightmare.
Obviously I don't know your background and skillset, so the stuff written below may not apply to you.
You need to learn how to communicate clearly and collaborate with the management and the team members.
You need to learn modern SDLC methods and techniques (basic project management such as Kanban, documenation, clear commit messages, Pull Requests, TDD, CI/CD, IaC[1]/DevOps, etc.)
Coding assignments should be the easy part.
--
1. Infrastructure as Code
by nvln on 11/19/22, 7:37 AM
Have a look at some of the problems that are surfacing in the tech community or new products that are being launched.
Examples: Twitter, all the stable diffusion front-ends, etc.,
Find a stack that lies at the intersection of demand and your preference. (Flutter, React/React Native, Remix or SwiftUI / Kotlin) and get your solution done. Showcase that on Github, Hacker News, your resume.
1. This will bring you up to date and renew your self-confidence as you have something tangible to say that your knowledge has been filled. 2. Instead of doing a myriad of take-home assessments, you can lead with this project and its open source code. If the company's stack is similar, it would be silly for them to assess you again and if they do, you are already prepared for it.
----
It is rare to find a team without a cowboy coder. In most teams they are assets as long as they are not asshats as well.
Good luck.
by 95014_refugee on 11/19/22, 8:46 PM
Second: you're looking at a journey of continuing self-discovery. There is no "one technique fits all". Don't judge yourself for not reacting well to any particular thing; use it as a way to better understand yourself - your current strengths, your biases, your blind spots, etc. Was the thing annoyingly obvious? Did you feel like the presenter was patronising you? Did it all go 'way over your head because you couldn't work out the basic premise?
Going wide, especially while you are trying to find yourself, may help you find a thread, or a style, or a philosophy that resonates with (or delightfully challenges) you.
With that said, I am a big, big fan of Plauger's 'Programming on Purpose' books. Nothing is perfect, but he does a remarkably good job of laying out basic principles - building blocks - that can help you go from programming intuitively ("cowboy style") to making software in a deliberate and intentional way. Because the books are collections of magazine columns, they're easily digestible in small pieces - good for reading on transit, over a cup of coffee, etc.
by AnimalMuppet on 11/19/22, 5:09 AM
by gsatic on 11/19/22, 5:42 AM
So pick a popular well known open source project and take a look at their github repos. Almost all will have their website code on github as a separate repo too. Look at the issue list and dive into the code to try to fix it. If you get stuck ask a questions framed as 'how do i do x its not documented can you guys explain or give me a link etc'. Once you have some interaction going, it will pull you in.
by jpoesen on 11/19/22, 10:36 AM
Also, I'd look into modern practices around the tech stack / programming language of your choice: code linters, debug tools, static analysis tools, refactoring tools, various command line tools, build/packagement tools, etc.
Also familiarize yourself with the CI/CD tools/approaches in your field.
Lastly, find one or more opensource projects with decent QA practices and start contributing to get into the habit of following prescribed tools, code standards, automated testing, etc.
Good luck.
by cratermoon on 11/19/22, 7:06 AM
Code Complete, Steve McConnell
The Pragmatic Programmer, Andy Hunt and Dave Thomas
Programming Pearls, John Bentley
Peopleware: Productive Projects and Teams, Tom DeMarco and Timothy Lister
Structure and Interpretation of Computer Programs, Harold Abelson
by trh0awayman on 11/19/22, 8:45 AM
by hnthrow10282910 on 11/19/22, 9:08 AM
1. Cracking the coding interview 2. Leetcode 3. System design
CTCI will give you the key of the land. The following two will you get a job.
Timebox 60 days. I got FAANG offer doing this and some other offers.
by knightofmars on 11/19/22, 7:21 PM
What type of work have you been doing the last 16 years? (E.g. PHP web dev, Enterprise Java/.Net, etc.)
by vaidhy on 11/19/22, 6:59 PM
by djgribbin11 on 11/19/22, 1:53 PM
by f0e4c2f7 on 11/19/22, 6:10 PM
Some good book recommendations[1]
by cratermoon on 11/20/22, 3:56 AM