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

I split my library alongside the same line. One section to answer the following questions: Why should I do it, how should I do it, how should I not do it, how does it work,.. and the other section answer the following: What to do, what to use,... The first one helps decision and planning, the second is what you use.

So there's the philosophy of the craft which are mostly the core skills of software engineering (or engineering in general). Problem solving, project planning, resources planning, methodologies,... Then the various theories (computer science). Algorithms, Data Structures, Computer organization, Networking, Databases, Operating Systems,... And then the skills. Programming Languages, Libraries, Tools (editors, shells, build systems, debuggers, test runners). Being a good programmer involves being fairly knowledgeable in all three.



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

Search: