Live data from Hacker News

Only solve one new problem at a time

bennadel.com

1–10 of 73 posts

Re: Only solve one new problem at a time

#2
Regarding learning a new paradigm and having to build an application with it, I think it’s possible within a reasonable time.

My approach, ironically was the incremental approach mentioned in the article. So the first step was for me to view it as one problem - build app using X. Then the steps might have looked like

1. Learn ABC

2. Apply ABC

3. Refine ABC

I always know enough to build something. Eventually, I know enough to refine it.

Now the author said this is slow and I agree but at the end of what would be a learn-first-build-later approach is an actual, built system. You can now solve the next problem, enhancements.

To any new developers, I should mention that a good foundation of fundamentals is key to this kind of approach and I admit, there are much better ways to learn and build.

Re: Only solve one new problem at a time

#4
This is presented as if this is sage advice that no one has heard before rather than tired cliches that only work in specific circumstances.

Maybe I'm just jaded. I cant count the times I've been handed projects where worked 'incrementally' meaning the original team mistook that for use all the time and budget yet not deliver the product. Or the times I've been handed projects where everything from the language to the os had changed without changing the timeline.

Absolutely only one one change at a time if you can. The real value comes in being able to take a situation with multiple changes and still make it work.

Re: Only solve one new problem at a time

#5
post #3

I slightly disagree with one point. There's not a better time/way to learn a new language than on a new/real project.

It depends on whether you're the one paying for someone's learning curve.

You'll be much better off if you learn the fundamentals then use a real project to polish your skills than trying to learn from scratch with a deadline looming.

Re: Only solve one new problem at a time

#8
post #3

I slightly disagree with one point. There's not a better time/way to learn a new language than on a new/real project.

It depends on whether you're the one paying for someone's learning curve. You'll be much better off if you learn the fundamentals then use a real project to polish your skills than trying to learn from scratch with a deadline looming.

The _fundamentals_ of most new languages one might typically use take a pretty short time (weeks, not months) to learn, for experienced developers. Most significant real projects will need at least a couple of prototypes/POC's at the beginning. Thus a brand new project is a great time to learn a new language, you can make your beginner mistakes in code which will never ship.

This goes back to that "innovation tokens" thing though, a new language is one innovation and you don't want too many others at the same time.

Re: Only solve one new problem at a time

#9
post #3

I slightly disagree with one point. There's not a better time/way to learn a new language than on a new/real project.

It depends on whether you're the one paying for someone's learning curve. You'll be much better off if you learn the fundamentals then use a real project to polish your skills than trying to learn from scratch with a deadline looming.

Something has gone wrong if learning on a live project is putting deadlines at risk. I've learned the most working on live projects, but it was important that the things I worked on weren't crucial for meeting those deadlines. This has a lot to do with how tasks are broken down and how responsibilities and tasks are delegated and what support there is from the rest of the team to maintain an acceptable velocity. That ensures that you're not, say, getting stuck on something for a week longer than necessary.

As for "learning the fundamentals", it's incredibly difficult to know what you don't know or understand and what you need to know/understand until you're trying to solve real problems. It's so inefficient and unmotivating. I knew the absolute basics of Spring Boot when I started working as a Java developer, but it wasn't until I started working a job with Spring Boot that the real learning started and I felt the motivation and drive to learn everything I could.

Frankly, businesses need to adjust and learn to be okay with paying for learning curves, instead of expecting people to know and have experience with everything under the sun. There are long-term benefits that aren't easily quantifiable.

Re: Only solve one new problem at a time

#10
post #3

I slightly disagree with one point. There's not a better time/way to learn a new language than on a new/real project.

I kinda hear what you're saying, but if it's reimplementing existing business logic you can spend less brain power on solving a business problem and more on a technology problem.

I don't believe there's a 1:1 straight translation from (in this case) Ruby to Go without a lot of extra work in the form of re-evaluating features, flows, performance, etc; the problem they solved wasn't the business feature, and a programming language should never be a problem.

Post reply on HN