
Ask HN: What Are Core Concepts, Language Neutral? - lagbaja
Hi,<p>I hear very seasoned senior developers with wealth of experience, always make this statement, i.e. The Mastery of Core Programming Concepts is the key and that a language of choice is just then used as a tool, hence the aforementioned Core concept mastery can be ported over to learning other languages.<p>So my question to Senior seasoned developers is thus, can you list this core concepts? I believe that if one can identify these core concepts and then get to master them, via drills and exercises, that will bring about proficiency.<p>I liking this to my knowledge of the Martial Arts and I am sure this is true of other skills that one acquires. So with the Martial Arts, you start with basics, that is Stances, which is your foundation, proper form, then you get into punches, strikes etc. and then you get to work on all these individually and in combination, regularly, so as to build muscle memory, this polishes your proficiency over time. You are also taught forms, what you will call in Karate a Kata, which will encompass the stances, strikes etc that you have been taught individually, but now as a pre-arranged sequence, which helps you to some extent understand the implementation of the basics &#x2F; techniques.<p>So in my mind, if this can be broken down and thought of and structured when it comes to mastering programming, I believe it will make the learning curve less steep.<p>Please I will appreciate your feedback.
======
zer00eyz
There are two ancillary areas that one should know well to be successful:

Databases: Do you know cod's laws? Do you understand what good db design is?
Set theory? Relational algebra? If not a great starting place is the book
"Database Design for Mear Mortals"

Instrumentation: When there is a problem, do you have the data there to
analyze, and the tools to analyze it. If your server side Dapper and the
OpenTracing Project are great places to start.

------
mooseburger
I used to begrudgingly practice martial arts. Computer programming is not like
martial arts, at all. What you want to do sounds like the software
craftsmanship approach:

[https://en.wikipedia.org/wiki/Software_craftsmanship](https://en.wikipedia.org/wiki/Software_craftsmanship)

Maybe look up more regarding that? I'm pretty skeptic about it...

IMO, the 'core programming concepts' (as in, skills that transcend language)
most important to me, are those related to producing readable, maintainable
code. Keeping your functions short, pure, and with one responsibility. Naming
everything clearly. Making sure you are obeying DRY and KISS. Perhaps you
would enjoy reading Code Complete:

[https://www.amazon.com/Code-Complete-Practical-Handbook-
Cons...](https://www.amazon.com/Code-Complete-Practical-Handbook-
Construction/dp/0735619670?ie=UTF8&*Version*=1&*entries*=0)

~~~
lagbaja
@ Mooseburger, I thank you for your comment.

