top | item 25136258

Ask HN: What is the best money you have spent on professional development?

524 points| sondog | 5 years ago

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

540 comments

order
[+] locochef|5 years ago|reply
The single best thing I did for professional development was see a therapist. In tech, our jobs are knowledge-based. You can't hammer a nail into a board while you're sitting on the couch with your child, but you can certainly think about software architecture. I've found that my job bleeds into my personal life, and vice versa, and I believe it is far more common than most people realize. Stress piles up and it affects not only your home life, but your work life.

Taking the time to talk to a professional and become introspective and conscious of my own mental health has provided me with more value than all the books and conferences and talks I've consumed put together.

[+] ThePhysicist|5 years ago|reply
I once did a two-day workshop on negotiation techniques, which covered not only methods but also helped me to become more comfortable dealing with the psychological stress that's induced in many negotiation situations. So far I'd say the course (which was free as I won it as a prize in a business plan competition) is directly responsible for at least 50-100.000 € of additional revenue that I made in the last years, simply because I negotiated more effectively.

I'd highly recommend honing this skill as it will also help you as an employee, as even small gains in salary can add up to quite a lot of money over the years. For freelancers and entrepreneurs negotiation is also important of course and will greatly help you.

[+] jkingsbery|5 years ago|reply
As many others have said, books are the best things I've spent money on, but let me say more:

Do books sometimes say things that are obvious? Yes. For example, when I first read Martin Fowler's book Refactoring, I had been renaming variables and moving methods from one class to another for years. But he gave a new framework for thinking about something that obvious. I've found the idea of separating out my coding flow between adding functionality and improving code really helpful.

Can you get the material for free? Almost always, yes. But it takes time to find the right material, and our time is valuable. A typical industry book is $40-$50, and a typical text book is $100-$150. The authors of these books have spent time organizing the material in a helpful way that you would otherwise need to spend.

For some topics though, it's not just a matter of time savings. I'm working on a topic now that doesn't really have many useful books, so I'm having to read technical specifications produced by industry groups, which lack context and are pretty opaque. I'm missing having a book that explains these ideas in a coherent fashion.

I have tried a few MOOCs for professional development. I've found they can be helpful for a superficial understanding, but they don't encourage the deep understanding I get from reading through a book.

[+] Cthulhu_|5 years ago|reply
If your budget is a few hundred, an IntelliJ Ultimate license. For me it's a force multiplier. Built-in highlights of things that can be improved (e.g. linting) is a bonus. In the end, things like VS Code are just text editors.

I mean, you can't get a warning that the `[]` syntax isn't available in your old codebase's flavor of PHP (5.2) in VS Code. I think.

Alternatively: Take time off. If you have enough money to live on for a month, take it. Make a list of things you'd like to dig into, or just spend a month doodling. Or take half days off for a month and participate in something like Advent of Code. You can challenge yourself in various ways, like use an unfamiliar language for the month, or a different language every day. Do some tutorials and make stuff in Pico-8, embrace the limitations and embarrassingly unreadable code, which is amazing at the same time because you wrote it and it all fits in your head. Just throwing it out there.

[+] noir_lord|5 years ago|reply
Second this.

I pay for Intellij Ultimate out of pocket, work would buy it but frankly it's easier to just have my own license and I use it a lot outside of work.

vscode is fantastic at what it does but one is a wheelbarrow, the other a dump truck.

[+] boogies|5 years ago|reply
> I mean, you can't get a warning that the `[]` syntax isn't available in your old codebase's flavor of PHP (5.2) in VS Code. I think.

You can get warnings when syntax isn’t available in your script’s flavor of shell in [neo]vi[m], emacs, or GNU ed with shellcheck, I’d be mildly surprised if there wasn’t a similar editor-agnostic linter for PHP.

[+] corytheboyd|5 years ago|reply
The way I like to think of it: VSCode is a text editor with plugins, Jetbrains is an IDE.
[+] whazor|5 years ago|reply
I spent some time with vscode to install all the correct extensions properly. And for me back is currently on par with Jetbrains tooling, with the added benefit that vscode is faster.
[+] Kluny|5 years ago|reply
So worth it. I got PHPStorm when I started working at Automattic. I'd been developing in PHP for several years at that point, and didn't see the point in an IDE. But my previous job had been a low-end local company.

At Automattic, the expectations were so much higher. They'd give me a 3000+ line, 20+ file codebase to review, for example. There was plenty of time to complete the task, but with so much code to deal with I needed to very quickly develop some skills and tools to keep it all straight.

I learned a lot of keyboard shortcuts for PHPStorm for quickly noting filenames and line numbers in my review sheet, and wrote several macros for quickly writing out repetitive text. These things were essential because it was so easy to get lost or distracted even by flipping between my notes and the code. I could end up going through the same file 4 times if I wasn't careful (on a first pass, that is - it was normal to take several passes through a code base).

[+] drampelt|5 years ago|reply
Does anyone have any tips or resources for getting more out of the Jetbrains IDEs? I've been using them for years but I still feel like there's so much I'm not taking advantage of.
[+] ed25519FUUU|5 years ago|reply
As a vscode user, I opened up pycharm to see if I like it at all. It asked if I wanted to update ideavim plugins and I said yes. Now looking at ~200% CPU usage for about a minute. Still can't open my folder[1].

There's nothing I hate more than work software that I have to tinker with to keep working. Maybe it doesn't deserve the reputation it has for being a resource hog, or maybe it does?

https://i.imgur.com/TpfAvrB.png

[+] vinayan3|5 years ago|reply
I agree. I got license for the JetBrains All product pack. It's been a huge boost in my productivity for Python and C++ because the refactoring tools make mundane things so much faster.

Also, templating is incredibly powerful. I avoid copy / paste in favor of typing or generating things out. Copy/Paste is a really bad pattern and the overhead of having to put the code in makes me think about abstracting it much earlier than if I just copied and pasting things.

[+] paulie_a|5 years ago|reply
I've been using jetbrains products for years and just bought the personal ultimate license this weekend. Their products are great and their support his excellent!
[+] intricatedetail|5 years ago|reply
I think this is a must have for large projects. I wish their search options where like in a search engine though. VS Code is fine for quick edits but feels too basic to handle large codebase.
[+] billfruit|5 years ago|reply
I actually was wondering if clion is worth the money..
[+] nolok|5 years ago|reply
I found that (for me !) it was less useful to invest in learning to do new things, as opposed to investing in being more efficient and / or having my work time more pleasant.

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).

[+] omginternets|5 years ago|reply
I was lucky enough to get paid for this but I'll say it anyway: learning to speak is the only thing of lasting value I have gotten out of startup accelerators.

I would have gladly drop a few grand to acquire that skill. In fact, I'm considering hiring a speaking coach to improve.

I've historically been a strong written communicator, but it turns out that speaking is very different from writing. In fact, I had thought of myself as a pretty strong speaker due to my experience giving scholarly presentations ... how wrong I was. Academic talks are a different beast altogether.

If you haven't seen Patrick Winston's How to Speak lecture [0], drop what you're doing and watch it now. I'll leave you with a (paraphrased) quote from his lecture: your ideas are like your children and you don't want to send them off into the world dressed in rags.

[0] https://www.youtube.com/watch?v=Unzc731iCUY

[+] biztos|5 years ago|reply
Have you heard of Toastmasters?[0]

I haven't done this myself but I plan to, as I've heard good things about it, and if you live in a big city or metro area there is probably at least one group you could join. Also in many cities outside the US, for example I think Bangkok has several different ones, I know Budapest has at least two. And it's really cheap, AFAICT, in case that's a factor.

It's got a bit of a self-help sheen to it but I knew a couple guys in SF who were involved and they said it was just about public speaking. At which they were much better than I am.

[0]: https://www.toastmasters.org

[+] SZJX|5 years ago|reply
I watched this talk as it was posted on HN a while ago, though I have to say, surprisingly I wasn't very impressed with it for whatever reason. Maybe I have to revisit it to see if I can get more out of it.
[+] nvusuvu|5 years ago|reply
I took your advice, dropped everything, and spent the last hour watching Patrick Winston's lecture. What a master class in public speaking! I'll be revisiting this lecture to take in-depth notes.
[+] julianozen|5 years ago|reply
I just watched this video and wanted to return to say thanks for the great suggestion. What an unexpectedly delightful lecture
[+] lucasfcosta|5 years ago|reply
I’ve just watched this lecture and I can’t thank you enough. It was one of the most useful talks I’ve ever seen.
[+] unoti|5 years ago|reply
1. Book: Nonviolent Communication, by Marhsall Rosenberg PhD. Great things are built by teams. The more senior I become, the greatest challenges involve teamwork, and the programming is the easy part. I've read countless leadership and self help books, but the simple concepts in just the first few chapters were absolutely transformative to me.

2. The Fast AI for coders course and associated book. (Maybe this shouldn't be on this list, because it's free, but it's still the absolute best place to learn machine learning from scratch.) This is a book and a set of videos that go over the same material. I work on a team of data scientists, and using information from the first few chapters of this book I've done things that are far beyond the capabilities of my teammates. Unlike most courses, this starts with practical knowledge you can use to do useful work on day 1. Then later it moves into the theory of how it works. You don't need more than high school math to get going.

3. The Coursera Deep Learning Specialization, a set of 5 AI courses. Has a certification you can use on your resume and LinkedIn.

[+] sanguy|5 years ago|reply
The therapist is a good one already suggested.

Also instead of other PD I would suggest to save (invest) as much as possible as early as possible. A career in tech is very seldom healthy as a forever job so having an escape path is important.

I used this technique to get enough invested by 45 that I could comfortably live on the dividends/capital gains/passive income it generates without ever touching the investment principle. This is a very nice feeling as it allowed me to "escape the grinder."

Telling Eric Schmidt (while at Google) to "go fuck yourself" and walk out the door to never return was the most empowering thing I have ever done.

My career has been much more rewarding since.

[+] Dragonai|5 years ago|reply
> Telling Eric Schmidt (while at Google) to "go fuck yourself" and walk out the door to never return was the most empowering thing I have ever done.

You can't mention this and not tell the full story. You know what you were doing here :)

[+] webmaven|5 years ago|reply
> Telling Eric Schmidt (while at Google) to "go fuck yourself" and walk out the door to never return was the most empowering thing I have ever done.

> My career has been much more rewarding since.

That sounds like an interesting story. Any more details?

[+] sharadov|5 years ago|reply
Most people here are saying therapists, but the crux of the problem is the "tech" job. The sooner you can get out the better. Everything else is a band aid.
[+] rectang|5 years ago|reply
I ran a lunch-time book club at work for groups between 3 and 10 people, covering technical topics like programming languages, version control, and so on. After a management change at the company, I couldn't get budget for books or lunches any more.

So I bought the books and bought the lunches.

The most effective way to learn something thoroughly is to teach it, and I was the facilitator for the book club, leading all the discussions and planning things out. The thousand dollars or so I spent per book, which won me sufficiently motivated study partners depending on me to lead, offered much more value than money spent on typical coursework or conventions.

Never mind the value I was providing for the company (lost on the new management, but I felt good about it nonetheless), spending that money was justifiable solely in terms of creating a maximally stimulating learning environment for myself.

[+] orzig|5 years ago|reply
Having run something similar ~5y ago, an added benefit is that you end up with former 'students' at companies throughout the industry.

Specifically, a pattern I saw 5-10 times is:

1. Someone shows up at the meetings, about 3mo after being hired

2. After 2-3 sessions (to see if their serious) I invite them to lunch 1-on-1. I find out that they are really interested in my topic, and do it as maybe 10% of their role, so their manager suggested they check out my group

3. After 6mo, they invite /me/ to lunch to tell me their applying to transfer to join the team I'm on, which does is focused on the topic.

4. After 1wk, my manager tells me that they were rejected. Understandably, the reasons have to stay in the room.

5. After 2mo, they join an equivalent team at another company

6. After 1-3y, in ~50% of cases, they are senior on that team and check to see if I'm interested in a job.

[+] avbanks|5 years ago|reply
Such a great idea, thanks for sharing!
[+] _wldu|5 years ago|reply
Spend $9,000 US dollars to get a MS in CS, Data Science or Cyber Security from Georgia Tech. It's a solid top 10 CS program. It will take a few years, but it is definitely a great investment.

If you don't already have an undergrad degree and/or want a quicker program, look at some of the reputable code/security academies that partner with major state universities. They cost a bit more 15K to 20K but are shorter (typically a year or less).

Finally, there are certificate programs (offered by professional training companies) in security, coding, project management, etc. that cost 5K to 10K and last from a week to a month.

[+] d3nj4l|5 years ago|reply
You make it seem like getting into the MSCS program at Georgia Tech is just a matter of money!
[+] laddng|5 years ago|reply
I second this - I'm 3 semesters into the online MS in CS program at GATech and it's been a huge level up for me. I highly recommend the investment IF you have the time - it is a large time commitment.
[+] crims0n|5 years ago|reply
I thought that price had to be a typo... but wow you are not kidding. I wonder why it is so cheap? Seriously considering it.
[+] european321|5 years ago|reply
If only they would also provide F1 and OPT visas, I would be all-in. It seems like such a great program, but hard to see the value when most of the local employers probably don't even know what it is :/
[+] cashewchoo|5 years ago|reply
A $5 DigitalOcean droplet/VPS.

There's so much packed in there. A public, static IP and just enough RAM and disk to do anything you could possibly want to. And the relatively low RAM and disk limits does make you think about memory and disk consumption in a way that you're seldom otherwise incentivized to think about it while you're in undergrad.

It's also a gateway to developing working proficiency with linux, which is absolutely a huge multiplier for any software engineer. Just knowing how to grep, sed and 'awk {print $1}' gets you so amazingly far. And on a higher level, knowing how to throw together an nginx proxy or simple postgres db etc is also huge.

[+] MaxBarraclough|5 years ago|reply
My habit, when I'm playing with a new language, or other command-line-friendly gadget, is to spin up a new GNU/Linux VM on a cloud somewhere, dabble on there, then delete the VM once I'm done. If I've got any files worth keeping I put them on GitHub.

Don't have to worry about filling my own machine with rubbish, I can load the VM without it impacting my own machine, and I can generally be fearless (and incautious) in the knowledge the machine is of no real consequence. It's also a good way to try out an unfamiliar distro, or an unfamiliar Unix.

> It's also a gateway to developing working proficiency with linux

And also with cloud computing. It's a good excuse to play about with EC2 firewalls, for instance.

[+] ed25519FUUU|5 years ago|reply
A raspberry pi 4 would be better bang for your buck in my opinion, especially if your IP is relatively static through your ISP.

There's benefits to having compute on the same network as you. It will also be much faster to transfer files.

[+] andrewmcwatters|5 years ago|reply
LowEndBox, and you can get $15/year VPSs out there.
[+] gtf21|5 years ago|reply
As a founder / CTO the best money I have spent is on a really good coach. My coach (my cofounder's too, and now some of our leadership team) doesn't have particular expertise in founding or leading companies, but works with many founders, and she's not technical, but the things I think I have found hardest to learn are mostly around people management and leadership, which I think are underrated skills that require serious development (actually, whether one is in a position of leadership or not). When I think of all the books I have bought or conferences to which I have been, in terms of impact on my effectiveness as a manager and leader, coaching is wayyyyyyyy out in front.

EDIT: actually not just as a leader / manager, but in all areas of my life.

[+] therealplato|5 years ago|reply
"Designing Data-Intensive Applications" is the best reference I've found explaining the many pitfalls of data storage and transmission. It's especially helpful if your code has ownership of any data (i.e. if you create or modify it), and an order of magnitude more useful if your organization has multiple processes touching a given piece of data.

https://dataintensive.net/

[+] david_shaw|5 years ago|reply
The best money I've spent on professional development is paying to travel to industry conferences at which I was accepted to speak.

Like many people, I was nervous about public speaking earlier in my career. Out of a desire to improve myself and to "give back" to the community, I applied to speak at some industry conferences. Many people think about conferences as TED-talk style luxury events, at which speakers are compensated for their time and expertise. In reality, the only thing most conferences give speakers are a few free tickets to the conference and access to speaker-only events. Travel (and often lodging) need to be bought out-of-pocket.

By putting myself out of my comfort zone and speaking at these conferences, I developed valuable skills that significantly helped my career as it continued to develop. Being able to speak confidently in stressful situations -- to a wide variety of audiences -- is a very valuable skill to have.

In addition to the confidence boost of getting some talks under my belt -- and the actual skill of public speaking -- the networking opportunities afforded to conference speakers are often unmatched. I was able to have intimate conversations with leaders in my field (information security), and learn first-hand how luminaries think about contemporary challenges.

I realize this answer probably doesn't conform to the type of response that OP was seeking, but it's the truth of my experience.

Good luck!

[+] melenaboija|5 years ago|reply
- 15k with an MSc in Data Science after 10 years of professional experience. Key aspects that made this useful for me: I commited to it 100% and went for a 4 gpa as that was the only way to take it seriously, I could do it because of my personal situation and tine availability. I learned A LOT, among other things that I am not that stupid as I thought while taking CS, it was just a matter of interest to me. This gave me my currennt job with a significant turn to my career.

- Spending 2k with a work station and changing my environment from expensive Macbooks to an expensive workstation and cheap laptops as a front end

[+] lsiunsuex|5 years ago|reply
I'm a big fan of pluralsight.com (no association). It's only $29 / month USD. I always go back to it when I want to brush up on something or learn something completely new. Not all videos / instructors are created equally of course, but their content has been the most consistent IMO.
[+] rc_hackernews|5 years ago|reply
Udi Dahan's "Learn Advanced Distributed Systems Design" course.

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.

[+] ukd1|5 years ago|reply
For me it has been paying for folks to help pair code with new languages I'm learning has been amazing at speeding up / getting some nuance quickly. Latest language was Rust.

Second, books.

[+] baggachipz|5 years ago|reply
Improv lessons. Seriously. Being confident speaking in front of others and the life lessons it provides ("yes, and") are absolutely indispensable. It brought me out of my shell and advanced me in my career significantly, all while having fun and making friends.