Hacker News new | ask | show | jobs
by rootusrootus 2497 days ago
That is insanity. What could you possibly study four hours a day that would be worthwhile? That's just pumping in useless trivia information that will crowd out the useful development knowledge. Is it a web development thing? Framework-of-the-week psychosis? It just sounds like a recipe to get burnt to a crisp in a few years.
5 comments

My first thought when reading your comment was "How could you possibly fit everything there is to learn into 4 hours a day?", but I think the disconnect is in two different conceptions of what a job is -

For most people, a job is something where you are hired to do a specific task for a specific wage, using specific skills that you learn once and then apply many times. "Make this button green." "Move the navbar 20px to the right." "When this button is clicked, send off an RPC to the server, and when it's complete, update the table with the relevant data."

These types of tasks lend themselves well to an "instruction manual" approach to skill acquisition: you read the manual, you apply it to your job, you memorize the parts that you use frequently, and you're done. Once you know everything in the manual, there's little point in studying further, because you know everything in the manual.

A smaller (but growing) minority of jobs require you to solve a vaguely-defined problem, where there is no manual because nobody's solved it before, and often times the problem hasn't even been posed in a tangible form. "Find out who wrote everything on the web." "Evaluate whether we should invest $5M into this venture capital fund." "Identify our next billion-dollar business." "Make cryptocurrency useful."

These jobs lend themselves to a "toolbox" approach. There is no manual, but if you have a wide enough breadth of experience, you've picked up a large variety of tools that you might be able to apply to the problem. So if you're tasked with figuring out who wrote what on the web, one approach might be ask the authors by having them add HTML markup, and then parsing and following that. Another approach might be to identify author bylines through machine-learning and then cross-reference them with a database of peoples' names that appear on the web. A third approach might be to identify pictures next to the byline and run facial recognition on them. You don't know which approach will be most useful until you're given the problem and actually try a few, but the bigger your toolbox, the more likely you are to find one that works.

The financial returns to these types of jobs tend to scale exponentially with their complexity, because the number of people who can solve them decreases exponentially. That's why it's beneficial to have as big a toolbox as you possibly can if you want to play in these markets.

I have never been the former, so I don't know how it works. That type of developer clearly must exist somewhere, because I hear people on HN talk about it, but I have always been a "hey, we have this interesting problem to solve, can you help" type of software developer. And yet, I have managed to stay quite good at this even without dedicating four hours of non-work time to it. To each their own.
I've done both of these types of jobs and I definitely feel different about them.

An example is if you work in any service industry. You don't have to think much, you just do when things need to be done. There's a lot of repetition so you just do without thinking. Or in an office job there's generally a set of tasks that you get done and this very clear path of how to do these things. I do think more time generally leads to more output for these jobs (maybe not in service if we're adding more time into the times of day when there isn't a demand for service, but I think everyone gets the point).

In my last job I worked as a researcher and I'm now in grad school. I feel like for the most part I accomplish way more when I'm not tied to a clock (I still like deadlines and think they are beneficial). But some days are just worthless. Some days 10hrs is nothing and I've forgotten to eat. But most days I'm productive in the morning then do other things mid day, be productive again, hang out with friends, then do research at night. These breaks help me end up getting a lot done. The problem I'm working on is far away (though I'm positive some part of my mind is working on it in the background). But as soon as I'm tied to a clock I feel like I get less done. In those moments where I'm drained I end up just looking busy or do something like browse HN. The thing is that these actions don't allow me to recover, so it's harder to get back to work and be as productive as I was in the morning.

I think that's the trick here. Recovery. In mentally demanding jobs we don't consider rest. It'd be like working heavy duty construction all day every day. It's not sustainable. Or asking pro athletes to train at their max every day. Recovery is an essential part of training and being effective. I think you can train to get more hours of productivity in a day, but as long as we don't actually rest that will never happen because we don't recover.

But idk. Do others feel this way? Often I feel like many don't, but maybe people are just looking busy and we're caught in a feedback loop.

Excellent point. I would also like to point out that the instruction manual jobs that you mentioned are being automated away and the pace of automation over this type of job is likely to increase.
I personally study a thoughtful blend of the a number of subjects, including:

1. Machine Learning 2. Practical Software Development Tools and Techniques 3. Computer Science Fundamentals 4. Design 5. Marketing 6. Business Fundamentals 7. Strategy 8. Communication

I believe all of these are elemental to being a successful software developer in 2019. Machine learning is eating conventional software development from the inside out and conventional software development will eventually be mostly obsolete. Like many developers, I'm transitioning to this field to stay ahead of these upcoming changes.

Our jobs as software developers (and increasingly machine learning engineers and data scientists) demand superior communication skills and reasoning. Since the ultimate goal of most software today is to be sold for a profit an impactful area of study is business and marketing. Understanding how to structure software to best serve business goals means understanding the ecosystem that the creation lives in. Finally, the ultimate consumers of software and machine learning models are rarely technical and solid design skills are a good complement to a solid technical foundation.

Staying current and moving ahead in all of these areas of study takes at least four hours a day.

I appreciate the apparent effort you put into this post, but man there are a lot of fluff words in there. You inadvertently pegged my BS meter, even if you hadn't used "impactful." Ha!

I wish you nothing but success and hope your plan works out for you.

Everyone has a separate set of trigger words or phrases, I don't take offense.

As a side note, the phrase that machine learning is eating conventional software development might sound cringeworthy given how ML/AI is commonly portrayed by the media but it's the same description provided by Kunle Olukotun at NeurIPS (I was there when he delivered that talk).

I second what the previous guy said - what could you possibly be spending 4 hours daily on?

Anyone who claims to be current and moving ahead in all 8 of those areas would immediately set off red flags and signal to me that they definitely aren't current in all those areas.

I would argue that I'm current on the machine learning and practical software development side and minimally current on the others and improving.

To offer some background, on the machine learning side I've built and deployed over one hundred models using nearly every major machine learning technique available today. To stay sharp I actively compete in Kaggle and other competitions (and have won a few small competitions) and have attended over six large ML conferences over the past two years. I actively read through every major published book on machine learning and nearly an entire bookshelf dedicated to the practice. These books, as well as MOOCs contribute to the majority of my reinvestment time on this side. I turn around and directly apply this information to competitions and paid projects to help it stick. I also read through as many ML papers as I can budget time for. Arxiv Sanity Preserver is a great resource here (http://www.arxiv-sanity.com/).

On the software development side I've built and deployed over a hundred websites products and services in half a dozen languages over the last twenty years for clients or my own business. I subscribe to a litany of aggregators over python, c#, and javascript news and use that information to identify trends to focus on for the practical side. Outside of side projects to gain practice these skills I also use pluralsight, developer conferences, and (less frequently now) books to stay current on this side - which contribute to time against this daily.

On the computer science side I have a large collection of classic books I'm working through and rereading. Everything from the Intro to Algorithms to SICP. I'm currently on my second pass through MIT's 6.006 and 6.851. Much love for Erik Demaine. I own a collection of CS puzzle books including Cracking the Coding Interview and my wife tortures me weekly with dynamic programming puzzles on a whiteboard we have to keep sharp. Similarly, I also tackle LC and HR puzzles on a weekly basis.

On the marketing side I've managed a significant of marketing spend for clients and my own projects through every major marketing platform except facebook. Through this I've developed a skillset around split and multivariate testing. I've also run literally hundreds of marketing experiments to gain experience and understanding. I actively manage paid and organic marketing efforts for an array of projects which provides an additional impetus to stay current. To that end, I subscribe to a number of marketing news aggregators and I'm reading through every major marketing classic I can find. I've had more trouble finding good information on this side compared to other areas.

On the design side I'm currently taking courses through Kadenze and own every a large collection of design classics that I've been reading through. Everything from universal principles of design (strongly recommend) to the design of everyday things. Beyond thoughtful practical application of these skills in hundreds of websites and apps I've also exhibited artwork.

It's a similar story for the remaining areas. Mostly paid courses, conferences, and classic textbooks (I budget about 20k a year for these resources). I also use Anki for remembering important concepts.

I've been at this (reinvesting continuously in all of these areas) for over ten years and averaging 15-20 hours per week of dedicated reinvestment with nearly no breaks for at least the past three years.

Man, you sound like you need a big fat blunt. There is more to life than what you are describing here. Do you have any hobbies?
What is your end goal?

C-level executive? Having your own start up? Retire early? Researcher who goes to a lot of conferences and applies state of the art techniques to solve problems?

Sounds like most of the things you are working on are just making you a more efficient cog in large organizations. But in terms of compensation, sounds like the skills you are pursuing will have diminishing returns for increasing your compensation, with out a clear goal and road map for where you want to end up.

Most people (me included) reading this think it's insane. I'm glad it works for you and makes you happy (does it?). I'm sure some pointy haired boss would love you.

TBH, if you said all this to me in an interview or cover email, I'd pass you over and maybe keep your email so I could show it to people at the pub after work for a laugh. I'm not trying to be mean, but maybe you're so deep in this that you haven't heard how it might be perceived?

You may think this is due to some buried jealousy at your ability to keep this up, but I promise you it's not. I'm thankful for the time I spent all day/night learning what I know, but I'm thankful for it because it lets me not spend the rest of my life in that cycle.

Are you doing this for personal growth/satisfaction/enrichment? If so, more power to you. I'm personally more inclined to read a (non textbook) book or watch sports during my free time, but if that's what you enjoy then good for you.

Or are you doing this to maximize earning potential? If so, to me (maybe not to you) that's wasted time, unless you're banking over (arbitrary figure) something like $750,000 or more yearly.

I think 8 subjects is too much too make any meaningful progress. I have 2x 30 minutes when I'm on the train, and that's just too little to study anything worthwhile. I mean, I can read a novel in three days, but anything involving math costs me about 1 hour to get into before I can really learn something.
Can you give a couple of concrete examples when you claim machine learning is 'eating conventional software development from the inside out'?
See the first six slides here: https://media.neurips.cc/Conferences/NIPS2018/Slides/Olukotu...

This is not my phrasing but as someone that's deployed several models in production that have replaced existing conventionally written and maintained areas of code I believe it.

The significance is the ability for machine learning to displace traditional software development is small but growing and there's no real practical limit.

Thanks, I've seen Karpathy's core argument before and to be honest, I don't buy it. Throwing everything at neural networks and forgetting all domain understanding (sometimes developed over centuries) just doesn't feel right. They can be good at certain use cases, certainly, but the eating argument is going too far and just seems like lazy justification of his own research area.
I think they're on the money with the dedicating a few hours a day to study/productivity outside of work - I just can't imagine doing it for the same thing I'm already getting paid for anymore. If they're really into programming/dev studies though it's totally fine but it feels like a recipe for burnout.

A lot of people do feel bad if they waste their days just looking at Youtube or social media all night after work - I think a lot of people feel the guilt after the fact but never work to execute on it because its so easy to procrastinate/skip small commitments of studying.

When I was at a shitty job I hated that meant most of that study time went to side hustles and learning the local language to build my CV, but now that I'm free and in a good job it mostly goes toward trying out completely unconnected things like Piano or Chinese - as long as it's productive I'm fine. Playing around in new things that interest you half for fun is the best approach to not burn out I think.

> What could you possibly study four hours a day that would be worthwhile?

You're quite correct that ephemeral and arbitrary arcana makes up a HUGE portion of current applied knowledge in the software field.

But if I could study 8+ hours a day over decades, I'm willing to bet I couldn't exhaust the limits of language/platform independent applicable computer science and mathematics that's presently available, let alone keep up with any new developments. And that's before getting into domain-dependent specific issues and practices.

I realize that barefoot was speaking about studying things that are relevant to your job, but because you asked "what could you possible study for hours...that would be worthwhile", I'm going to say "study whatever interests you", regardless of it's relevance to your job. There are plenty of things worth studying for hours a day...as a hobby. I'm currently studying HAM radio & GIS systems.