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

How do you build this raw, generically-applicable problem solving skill? Everything I come across ends up being frameworks for probables specific to a discipline.


I think it can come from natural curiosity, strong fundamentals, and experience. Search for problems that don't have canned answers and try to solve them.

I think anyone can improve if they're willing to put in the time, though of course natural ability does help.

Think about learning to write a compiler for a programming language. You'd have to learn: - Computer architecture - Assembly language - Caching - Recursion and Parsing - Type theory - Translations - Performance testing

Or attempt to write your own database. That would cover at least: - File Systems - Transaction semantics - Algorithms

I think tackling problems like this would help a great deal. Or just look for areas where you don't know how to do something, and work on them.

Things like: - How deeply do you know your favorite programming language? - How easily can you setup a Linux server to host a web application? - Are you an expert at your editor? - Can you write a usable GUI, either for the web or a phone, etc.


These are great example exercises, thank you for sharing them.

I think they may get at the heart of what I was trying to say though: while these clearly would make one better at solving software engineering problems, I'm not certain they would improve one's raw, general problem solving ability in an orthogonal discipline.

Some (likely imperfect) examples are:

- solving salary negotiation of a job/contract offer

- solving socio-political organizational problems in a company


Not everything is acquirable.




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

Search: