Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.




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

Search: