Your Coding Teacher
372 subscribers
10 links
Coding, software engineering & #bitcoin technologies. I'll make you a better thinker, not just a better developer | Ex
Amazon, Senior DevOps @eBay
Download Telegram
5 Random coding tips Disable distractions Ask effective questions Learn to debug Learn from your failures Examine all solutions before jumping in
Merge sort is O(NlogN), but requires additional space for the merging process. Quick sort is O(NlogN), but may degrade to O(N^2) Heap-sort is O(NlogN), but it's not stable (won't respect relative order of elements with the same value)
A shell is a command-line interpreter that reads user input and executes commands. The user input can come from the command line or from a file - a shell script.
Hash tables need to have some collision resolution strategy: - Chaining: use a linked list or binary search tree - Open addressing: probing techniques to find the next available slot - Perfect hashing: to minimize collisions (requires a more memory)
Interview tip Show attention to detail - If you get a question about linked lists, ask: singly or doubly? - If you get a question about strings, ask: ASCII or Unicode? You can assume it's the simplest for the interview setup, but these questions make you look good
There is a fundamental difference between algorithms, which always produce a correct result, and heuristics, which may usually do a good job but without providing any guarantee.
The assembly programming language was created in 1949. It was widely used in the EDSAC calculator, invented by Maurice Wilkes at University of Cambridge. This calculator could solve differential equations and discovered a 79 digit prime number (the largest known the time)
Better to become a programmer today, maybe a bad one, than staying in tutorial hell. Change your mindset from learner to programmer. Being a programmer implies being a learner.
In UNIX, a zombie is a process whose execution is completed but it still has an entry in the process table. This usually happens for child processes. Zombies can exhaust all available PIDs on the system preventing new process from being forked.
"If we wish to count lines of code, we should not regard them as lines produced but as lines spent." - Edsger Dijkstra
In the last month: What's the ratio between hours spend watching tutorials and reading articles and hours spend writing code?
Some JavaScript testing tools - Frameworks-> Mocha, Jest, Jasmine - Assertion-> Chai - Code coverage-> Istanbul - Spies, mocks, stubs-> Sinon, testdouble - BBD-> cucumber
Agile processes promote sustainable development The sponsors, developers, and users should be able to maintain a constant pace indefinitely agilemanifesto .org
Confidence comes from experience. Experience comes from doing. If you do, you'll make mistakes and sometimes "fail". Now you see mistakes and failures from what they are: part of the process. If you're making mistakes, it's a sign you're moving.
Some people, when confronted with a problem, think "I know, I'll use floating point." Now they have 1.99999999995 problems.
"Simplicity is the ultimate sophistication." - Leonardo da Vinci
Threads All threads within a process share the same address space, file descriptors, and process-related attributes, but each executes in its own stack Since they can access the same memory, they need synchronization mechanisms, like mutexes or semaphores
An operating system is a program that controls the hardware of a computer and provides an environment for programs to run. Ex: Linux is the kernel used by the GNU operating system.
3 Random coding tips Learn programming foundations Learn when to ask for help Clarify requirements before starting
What's the difference between ++a and a++? - a++ evaluates to a and then increases a by 1 - ++a increases a by 1 and then evaluates to a Which is more efficient? a++ creates a temporary object to store the "old" value before increasing it Therefore, ++a