Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Which books, courses, projects have improved your programming skills immensely?
51 points by optbuild on Aug 24, 2023 | hide | past | favorite | 20 comments
Have you had any experience as a mediocre programmer where you coded mostly hit and miss style and then you did some project, read some book(s) or took some courses and you started to program like a scientific process and a mental model was formed and eventually became a good then a better programmer?

You started understanding programming languages much easier and better and were able to structure solutions in more elegantly and efficiently in code.




Not fully programming related, but one book that made a massive impact on my abilities as a full stack dev was “Refactoring UI” by Adam Wathan & Steve Schoger.

From my experience, a lot of devs who work in a full stack roles are stronger as backend devs but they have some basic understanding of how to build a frontend in one of the popular frameworks, such as React. If we are working with a good designer this is usually enough, but having a simple mental modal for how to make something look good really goes a long way. The way that this book was written gave me a good grasp of this by explaining it in a way similar to how I’d think about software (as opposed to being more vague and abstract, which a lot of design books aimed at designers tend to be).


Intro to Database Systems by Andy Pavlo - https://www.youtube.com/watch?v=oeYBdghaIjc&list=PLSE8ODhjZX...

MIT 6.824 Distributed Systems by Robert Morris - https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39...

Designing Data-Intensive Applications (DDIA) - https://dataintensive.net/

Crafting Interpreters - https://craftinginterpreters.com/


For programming, books like "Clean Code" by Robert C. Martin and online courses like Codecademy's interactive lessons have been game-changers. Working on open-source projects and collaborating on platforms like GitHub has also turbocharged my learning. Remember, it's not just about quantity but finding quality resources that resonate with your learning style.

Not programming skills related, but sometimes I read this blog in order to be more up-to-date: https://www.ratherlabs.com/blog


Clean Code is not an uncontentious book. See:

It's probably time to stop recommending Clean Code - https://qntm.org/clean

Long discussion at https://news.ycombinator.com/item?id=27276706


In my career books have paled in comparison to real world experience, and finding myself far outside of my comfort zone. The two major advances I've gained in skill were a) completing a college diploma b) being thrown into the deep-end at a fortune 500. You can read all the books in the world, but challenging work experience will have far more impact.

The 'mental model and scientific process' has less to do with code alone, and more to do with the holistic act of working for a business. Development is just a part of it. Books will teach you best practices (and you should know best practices), but they won't teach you how to be an effective team-member, or cog in the business.


It depends on what are you vision of the "programming skills" and how you define a "better programmer". There is so much area of expertise to master them all..

You seems to have a certain inclinaison for scientific programming. I suppose it's in this area that you want to have better programming skill. The book that I heard a lot about is the following one (it's on my shelf) :

  - The Art of Computer Programming, Volumes 1-4, by Donald E. Knuth
Some books are more generals and provide insightfull tips that I found quite helpfull :

  - 97 things every programmer should know, by a lots of people

  - The pragmatics programmer, by Andy Hunt and Dave Thomas 

  - Clean code, by Robert C. Martin
If you want improve you skill about a particular programm language, the best is learn every kog and what happend under the hood of you language. Books, Video, any things that will help in that direction, it depends of your choice . Usually it takes time to improve.

There is many type of language and big difference inside those type : Scripting languages (python,bash,js...), compiled languages (c,c++,java,c#,...),... If you know different tools you are more likely to be able to use the right tools for the right jobs.

But the real advise is to be doing some real stuff : face real world problem

Take care !


I'd add to 97 things every programmer should know, there is also a '97 things every architect should know', which is just as good.


I will definitly have a look on this one. Thanks a lot for sharing


The F# for Fun and Profit[1] site by Scott Wlaschin is phenomenal as a general programming education site, not just for F# specific things (though there's plenty of that as well). The "Designing with types" series[2] is a good starting point.

[1] https://fsharpforfunandprofit.com/

[2] https://fsharpforfunandprofit.com/series/designing-with-type...


For Javascript this book is really helpful: https://eloquentjavascript.net/

Free Udacity course by Peter Norvigs: https://www.udacity.com/course/design-of-computer-programs--...

Introduction to Algorithms (Thomas H. Cormen) : https://en.wikipedia.org/wiki/Introduction_to_Algorithms


I'm probably still a mediocre programmer, but I've never hit any limitations, or read any books or courses, the only improvements I've noticed in myself have come from discussion with colleagues and deep thought about my values, and, least and most importantly, from programming a lot, and always seeking out ways to avoid becoming a plumber. I don't want to write code which is just data in hiding, I want to make machines which creates behavior out of data, and let someone else deal with providing the data whenever I can.


I enjoyed reading the book "Building Microservices" available at https://www.oreilly.com/library/view/building-microservices-.... The book covers various aspects modern software development, such as observability and resiliency. Despite its title, the book is not exclusively focused on microservices, and the author does not unequivocally assert that microservices are the ultimate solution.


The Turbo Pascal 5.5 book(s), Alexandrescu's "Modern C++ Design", Scott Meyers' books, "Code Complete", ...


The three most influential books for me were K&R C, the GoF Patterns and the ZeroMQ guide, in the order that I encountered them.


We have this strange paradigm where we’re expected to do the learning on our own time with our own money. If companies don’t let us learn while working, everything should switch to co-ops.


I'm curious how many people here actually don't get support from their employer for learning skills that are needed? Personally I've never had a problem learning things required by work, at work.

The extra learning that I do outside of work hours is all for me, keeping my skills up to date means that I've got a lot more options available if I need to move jobs.


In my experience, yes, that's the main perk of a salaried job. When I was freelancing, it definitely was on our own money. But most companies have a self-training budget, a training budget, and they allocate time off projects to send you to training. It's more common than dental insurance at least.


SICP is almost like a religious book to me.


Ironic it bids us not to be Bible salesmen :p


the linux programming interface by michael kerrisk




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: