Ask HN: What is the best money you have spent on professional development?
I'm a software engineer with a budget for professional development, I'm looking for a good way to spend it.
I'm curious what other people have found valuable, it could be a book, MOOC, conference etc
552 comments
[ 4.2 ms ] story [ 359 ms ] threadAnd don't let the age of these impact your opinion, these are the timeless articles that you probably recognize their ideas because these "radical ideas" when fully mainstream.
These are close, and getting any of these will prove to be a fantastic resource: https://store.hbr.org/product/hbr-classics-boxed-set-16-book... https://store.hbr.org/product/hbr-s-10-must-reads-ultimate-b... https://store.hbr.org/product/harvard-business-review-guides...
In my earlier years as a developer I also bought a lot of books and some of them were very useful, and from time to time I still find a good one. If I were at the same stage today, I'd probably also consider online training courses, as some of them do look well presented and for getting up to speed quickly in a new area that sort of guided material can be helpful. (The same applies to in-real-life small group training courses, when that sort of thing becomes more practical again.)
I'm not a big fan of convention/lecture formats, though. They tend to charge a lot for admission, and IME they are rarely worth the time and money, particularly because these days you can often find much of the best material from any particularly good presenters available freely from other sources anyway.
Nothing like hands on keyboard to get something new to click!
https://particular.net/adsd
At one point, I was considering paying out of pocket to attend the course. Fortunately, the company I was working for at the time wanted to send people to it and I got selected.
After taking the course, even if I did have to pay myself, I wouldn't have been upset.
That course is outstanding.
I've been reading/lurking on this site for YEARS.
For some reason though, the idea of posting has been nerve-rattling even though everyone is technically anonymous.
I wish I had that money now or my company could pay for me.
One major take away I got from the course is to limit the more RPC-driven services I typically saw up to that point (and still see in current microservices examples to this day).
He also gave a lecture on the different types of coupling, which I had never even heard of prior to the course.
He also has a few talks on YouTube as well as others that work at Particular Software. I'd highly recommend checking out all of them.
https://www.destroyallsoftware.com/screencasts
They are on my site here:
https://www.semicolonandsons.com/
I'm not Gary, so the focus is shifted towards areas I have special interests in — namely: the day-to-day of running a software product business as an indie hacker/solopreneur.
You can also view a handful of the screencasts for free (no sign in needed). Some of my personal favorites.
* https://www.destroyallsoftware.com/screencasts/catalog/funct... * https://www.destroyallsoftware.com/screencasts/catalog/a-com... * https://www.destroyallsoftware.com/talks/boundaries
Also, if podcasts are more your thing, we just had Gary as a guest on the Bike Shed podcast this week: https://www.bikeshed.fm/269.
Second, books.
https://learning.oreilly.com
I've also had good experiences with SCPD courses from Stanford, if your budget would cover those (they are at the other end of the price spectrum).
Pro: I like being able to sample the same topic from many prospectives (one chapter from each of 3-5 books)
Cons: I wouldn't spend /that/ much on books in a year, the quality of the videos is widely variable, the search (including quality filtering) is _terrible_, and the inability to bookmark specific talks within a conference is infuriating. Part of the pain is how close it is to being really good!
What's your pro/con list?
That said, it is fun to be able to randomly access books on a topic without having to decide whether or not to buy them.
[1] https://news.ycombinator.com/item?id=22799753
To some of us, we don't learn very well from those things. Books tend to have a higher knowledge value and other advantages. For a discount, I'd be willing to give those things up, assuming I wasn't already getting access to Safari through work and didn't already have a reading list of purchased books a mile long.
That makes sense; ultimately there's a reason why Safari subscription costs $49/month.
A start up failure might be painful, and even a little expensive. But it's like a college degree, or other high quality training program. It teaches you a lot and most of it is beneficial stuff if you are willing to apply the lessons elsewhere.
Additionally, if you have an alma mater, try looking with them. Most universities will give full library access to alumni if you are part of the alumni association, including journal articles, newpaper subscriptions, magazines, etc. Dues aren't too expensive and lifetime membership is reasonable, at least for me.
I'm currently living near Purdue University and that's definitely the situation here.
But I'm from Puerto Rico, live in the city, graduated from the University of Puerto Rico and that's not the situation there. I can, probably, at best, get them to give me access to an old computer of theirs in the floor and access journals through there.
It just depends on the area.
But it does exist in some areas.
Most material is available for free on the internet, but like most open source material, you have to compile it yourself and that takes time. Good books save you the time by including important dependencies, normalizing notation, etc.
I've been in software for 20 years and have not yet felt like I needed to read anything that wasn't pretty mainstream.
I imagine one's professional reading is more academic when working on things like hardware or compilers, but most of us (for better or worse) are just working on CRUD apps in a marketing-adjacent space or maintaining a corporate Java monolith.
I don’t know what the CRUD equivalent would be, if there is one, but at the time random projections and large deviations were fringe math, and only the basic texts were available everywhere.
The same goes for recent books on applied machine learning or recent tools or libraries intended for professional practitioners. I think libraries are reluctant to buy books they think will go out of date quickly.
It's not easy to even ask for a book. I've asked librarians for books before, and I even have a friend currently working in a fairly large library request a book for me (with evidence from me of interest in it), and the request was refused.
The real books worth reading are those that make you a greater expert than the majority of the population. Libraries don't benefit much from storing books that will only be read by one or two people.
Nowadays, you can get a digital copy instantly instead of waiting for another location to send the book to your library.
Make your work feel like pleasure and there is no limit to what you can achieve. So maybe don't only think "what can I be better at ?" but also "how can my life be better while I work ?".
Software:
A proper training session with a high level debugger for a language I wasn't used to, debuggers often have esoteric interface and "hidden" features, but learning to use them comfortably will make your life so much easier and pleasant.
Buying a license for a good IDE (in my case, intellij). I use vs code 70% of my time but when I need to work on more complex pieces of code or debugging it just change your life.
Hardware:
Buying a proper "high quality" laptop, notably the screen (real matte screen because screw glares, and 2k/3k/4k resolution because you look at text all day so crystal clear font rendering matters a lot).
A great chair with proper support because my back hurting at the end of every day is not ok.
A switchable sitting / standing desk ( https://www.autonomous.ai/product/standing-desk ).
Quality noise cancelling headphones (Bose QC 35).
Is there actually any evidence that over-focusing on tools is a common problem? I understand it could be, and we've all probably wasted an hour here and there, but I don't fear drowning in a glass of water just because I've swallowed wrong a few times
I might say, "A journeyman makes his tools do the job, a master invests in his tools".
Same way e-ink is much much more pleasant to read a book in the sun than even the most expansive amoled screen.
For books, the dollar cost is so low that I can buy it, invest 15 minutes in evaluating it, and not feel bad walking away. At least 25% of books are worth the time and cost, which is plenty.
Which one do you doubt and what are your questions ? I would be happy to provide more about my experience so you can decide if it matches your need.
Hardware: I bought a gamer laptop (for use with Ubuntu) recently because it had a GPU, but was shocked to discover that I never got used to the keyboard. Again, I thought that I would get better, but it really hasn't. Fortunately, my Kenesis keyboard /was/ something with a continuously rising learning curve (I'm not hopeless, contra the evidence above!) But now I'm doing a lot of work in Looker which tries to do extraordinary things in the browser, but brings my machine to a crawl. My Mac-using coworker says it's less of an issue for him, but I can't quite bear to drop $2k just for that one application. That said, the value-of-my-time-over-1y calculation suggests I should. But does "good computer" just mean a Mac?
Monitor: What would be a good monitor buying guide? I'm happy with mine now but don't know what any of the specs mean for the future
Chair: This is like the definition of "YMMV" but how would you go about evaluating chairs, esp in the covid era?
Standing desk: I've been procrastinating on this one because while I understand how to measure things, I foresee myself visiting a half dozen diffent sites with different ways of representing the size/specs of their desks and getting pretty overwhelmed. And that would be the hardest thing to return.
Quality noise cancelling headphones: OK I guess I have no excuse here.
Thanks again, you've already forced me to think through several mental blocks and realize they are real but entirely surmountable. Any answers (from anyone) to the questions above would also be appreciated!
> IDE: How do you estimate which one is going to be best /after/ you invest in the training?
I had put off using a paid IDE for years. However the recommendation for IDEA tools kept growing stronger among my network. So I just took the plunge with their JetBrains (for Java). And what worked for me was I was full on using their IDE. Including running the app/web-server from within IDE. The great thing is they have 30 day trial period and so I learned most of the right way of using it. i.e., keyboard short cuts, navigation etc., Towards the end of the trial period I could sense a clear increase in my productivity. From then on buying full version was easy decision.
With their DataGrip product it was something similar. Good thing is their trial version allows 30 minute sessions. I kept on using it for a month or so until I was annoyed with repeated restarts so bought their full suite of products (the difference between two tools and full suite is something like ~10$/month).
> Laptop. MacBook's keyboard + Trackpad has been a game changer for me. Especially the trackpad. It's incredibly easy for me to navigate using trackpad. From exclusively Linux for ~12 years I've gone full on Apple ecosystem over last 3 years. Now not just Laptop I can also vouch for their bluetooth keyboard, trackpad and iPhone-11, and AirPods Pro.
> IDE
This one I probably can't answer you because of how personnal it is. My two best advices are:
- if there is a paying tool where you thought "yes it's cool but I don't really need that I can do without", don't do that and buy it. You will feel a lot better buying a tool that you ultimately don't need much than discovering after 10 years that you were wasting your time that a 100e spend could save you
- try a tool that is diametrically opposed to what you are used to, and force yourself to use it for a while no matter what, see if that different way of thinking works better if or if your original choice works better
Eg if you're a vim guy, don't try emacs or vs code (small steps); but intellij or similar, discover an entirely opposite way of doing things. It may convert you, or you may learn that you were right in your choice. Mostly all such tools have a free trial time. Hard part is to force yourself to use the new tool no matter what for a while.
My eye opener was debugging a hard problem in PHPStorm and noticing that instead of fighting/trying to extract information from its debugger, I was helped and supported by it. Suddenly that tool became my assistant and I couldn't do without, and I have been subscribed to jetbrains ever since (their intellisense is also miles ahead but I don't know if that alone would have converted me)
> I bought a gamer laptop
Ah, I have one too ! Love it ! Used to be Asus ROG serie, now is MSI G-serie. Awesome thing. The keyboard is the worst thing ever made for coding (especially on msi, they're steelseries keyboard, re-arranged for gaming).
I don't know your personnal situation, but if you can afford it and assuming you are a coder, buy a dedicated work laptop. Only thing that matters are screen and keyboard. Lenovo Thinkpad, Dell XPS, that kind of thing. Price in the 1000-2000 range usually. Not having anything but work on it will end up as a bonus and net positive, I promise you that (no distraction).
My current laptop is a thinkpad matte screen with semi mechanical key, if I need to show it to someone it looks terrible (and right out of the 60s), but it's awesome. If you spend more than 5 minutes a week fighting against your keyboard, you need to change it. If you need to "change position" because of the glare, change.
> Monitor
High refresh rate (120/144/240 hz, look for gamers latop they care about that), good color rendering (eg look for srgb screen) and contrast. In this one, opposite the laptop one, gamer's things are actually pretty good because rendering fast and clearly matters a lot there. The contrast is important because you want something that you can see clearly without being at 100% brightness, so the gamers 120hz/hdr compatible screen are a welcomed thing.
Do not think 60hz/75hz is enough, you won't see the difference going up but going down after being used to it makes it clear how better it is. This is a ~300e spend max.
> Chair
The rules are: it should not be an effort to be sitting in a good posture in it, and it should be your natural posture in it. If you don't sit better on it "unless I force myself to sit that way", forget it you won't do it. I bought a "medical/ergonomical" chair meant for people with back problems, for 240e.
> Standing desk
Absolutely agree, I bought one from autonomous during a sale. One thing I can tell you is it's a lie to thing standing is always better, so I would really suggest a switching that can do both. I'm still not sure it makes my life better per se, but I know at least I'm not sitting all day anymore and I don't feel terrible working standing up which is what I scared of.
> Quality noise cancelling headphones
Of the entire list this is probably the first one you should go for (...
IDE: Use IntelliJ Community Edition (or whatever Jetbrains IDE matches your project). Print out a keystrokes cheat sheet and tape it on your desk. Try to do stuff as a series of snippets, autocorrects, autocompletes and refactorings rather than pounding out the code (this is especially relevant in Java where it can save you like 90% keystrokes).
Example: don't start a new method by writing the new method. Start it by calling it somewhere with arguments, then alt-enter (auto-correct) to create the method, with the types and arguments already filled in.
Chair: get Herman Miller Aeron or Mirra (cheaper), second hand
Standing desk: I use cardboard boxes on a regular desk. I take sitting breaks when I'm thinking but not actively typing. Pomodoros also work (stand 20, sit 5 or 10). Don't use your phone when you sit.
*exemptions include event tickets and clearly personalized items
But at the end of the day there are always those 10+ people projects, or hard debugging case, where a heavy computing-intensive IDE figguring stuff out for you is worth every cent.
Anyway my general point is make sure your tool suits you, if you spend more than 5 minutes fighting against it every day it doesn't, you either need training on it or to change it.
I'll admit that I haven't any experience with other brands, but the Bose QC35 IIs changed my work life (especially when I as working in the office).
I really should upgrade my chair and desk.
I spent some time a decade ago learning better emacs skills (macros on the fly). Also getting better with jet brains IDEs. Made me more productive and my work more enjoyable.
I also read some of the “Unix power tools” book from oreilly, to help my command line skills.
Thirdly I had to learn symfony so I signed up for symfonycasts video tutorials and did the first lessons. It was a little cheeky but it really helped getting running. I liked the short lessons followed by actually doing.
This. I spent a week in 2000 focusing on learning Emacs. To this day, I'll use downtime to browse through packages, forums and documentation looking for new (to me) things to tweak Emacs with, or new (mostly CLI) tools. I just discovered the various rainbow modes last month, and life is so much better.
I'm struggling to find resources as well as understanding what to learn next and it's proving quite a blocker.
There were some short video tutorials I used too (I can't find right now...)
The story linked here has a bunch of resources. https://news.ycombinator.com/item?id=3492804
(https://batsov.com/articles/2011/11/30/the-ultimate-collecti...)
its old but emacs hasn't changed a ton.
https://batsov.com/articles/2011/11/30/the-ultimate-collecti...
A lot of Emacs is self-documenting and I use that. Look at the docs for the current mode (C-h m), learn keybindings (C-h b), change settings (M-x customize-group), read the info pages (C-h i m emacs).
Funnily enough, studying Common Lisp has helped me more easily read elisp.
Other than that: rocking-kneeling chair from Varier.
Apart from that, I think maybe one or two books every year. Most of them are pretty poor, but the value of that odd book that totally changes how you think about certain things is pretty high. A lot of technical books also have _really_ good, practical advice that can be applied to day-to-day work if you want to read them. It's pretty valuable to know the technologies you're working with in some depth.
(his paid episodes are irrelevant to me because they tend to be about things I have a lot of experience with, otherwise I'd buy without question)