I have been hearing a lot about a developer needing to learn core concepts and not just the latest frameworks/libraries. What are the core concepts a developer needs to know?
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (11)
Fundamentals to me are things like:
What is caching?
The storing of information in an easier to access location and/or format that came from a source of data in a more difficult to access location and/or format.
Some examples:
Whenever there is heavy computation or long latency involved in fetching a value, some form of caching may be helpful. The pitfalls being when the source of information changes the cache needs to change as well; and caching too much can ironically slow the system down, since the cache now has higher latency to search/fetch data than getting it from the source.
Thanks for explaining
At simplest:
This is really pretty much all you have to learn when you are learning any new coding language. The design patterns, APIs, frameworks all come on top of this.
Thanks, I just have a question? Where does file io come into play?
file io is how you interact with the file system - so this is how you read & write files.
this is not a "fundamental" in the sense that the basic language constructs I mention are fundamental - although it IS pretty important! but there's lot of programming you do without necessarily working with files.
how exactly you do file io depends on your programming language - you will use an API to do this. most programming languages tend to have a built-in API to handle file io for you. So the IO operations exist as an API on top of the programming language structures itself, and very frequently you have different levels of abstraction.
For example: if you're using a JSON api it might well give you functions to
load
andsave
json from and to a file. Underneath this api will be a more fundamental api to work with filestreams directly, but if you use the abstraction layer on top you generally don't have to worry about the underlying mechanism.Thanks for explaining :)
Data constructs (sets, tuples, arrays, objects, linked lists), basic algorithms, immutability, transaction scope and database locking, database normalisation to at least 3nf. Functional, procedural and object oriented development paradigms, source code control, esp Git. Clean code, SOLID principles. Soft skills (empathy, listening, compromise, NLP strategies for building rapport) industry specific knowledge and terminology.
What are
transaction scope
anddatabase locking and database normalisation
?Transaction scope is where you need to update multiple database records t o complete a business process. For example. Debit my bank account, credit yours. Either both should succeed (commit) or both should fail (rollback). Locking describes what can happen to records whilst they are being written to or read. Should you be able to read the balance off my account if another process is currently updating the balance figure. Does the decision change if it is updating something else like the overdraft credit limit?