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
As a software developer, writing working code is only part of your job You have to write working code that you AND *other people* can : - Maintain - Understand - Use - Extend Otherwise, as soon as requirements change, it'll become useless.
Cloud DNS is Google's managed Domain Name System (DNS) host, both for internal and external (public) traffic. It is the only service in GCP with 100% SLA – it is available 100% of the time.
"In a society in which the educational system is used as an instrument for the establishment of a homogenized culture, in which the cream is prevented from rising to the top, the education of competent programmers could be politically impalatable" - Edsger W. Dijkstra
I don’t see why developers make six figures, all they need to know is: - Linux - Bash - Go - Python - JavaScript and frameworks - Git - Docker - Kubernetes - Terraform - Distributed Systems - AWS - GCP - Prometheus - Grafana - Being On-call - Security
Amazon EC2 - Provides virtual servers - Supports multiple OS - Resources optimized for different workloads: memory/CPU intensive, storage, etc
Test doubles lingo - "Fake" implementation of real services (eg: in-memory db) - "Stubs" return certain values when invoked - "Mocks" keep track of interactions (eg: number of invocations) - "Spies" verify interactions with and/or mock some parts of a dependency
"Most people find the concept of programming obvious, but the doing impossible." - Alan J. Perlis
If you want to confuse your enemies, give them the source code. If you want to really confuse them, give them the documentation.
Have pride in solving problems Not in writing code
Decipher the classic Java public static void main(String args[]) - public: anyone can call this method - static: function belongs to class, not to a particular instance - void: return type - main: function name - String: argument type - args[]: array of strings
Scripts (like tests) are part of your system. You need to version-controll, maintain, test, and refactor them. They will make you go fast in the mid/long term.
Explicit is better than implicit - The Zen of Python
A delayed write goes to disk after spending some time in a buffer: to improve efficiency, instead of sending every write operation directly to disk, data is put into a buffer and queued for writing to disk later. System calls like fsync are used to write directly to disk.
Basics of most programming languages * Variables * Data types * Conditionals (if - else) * Loops (for - while) * Functions * Arrays * Dictionaries * Classes and objects That's enough to build many interesting applications
Basic regex matches: - ^ -> beginning of string - $ -> end of string - \d -> digit - \D -> non-digit - x? -> optional - x* -> x any number of times - x+ -> x 1 or more times - x{n,m} -> x from n to m times - (a|b|c) -> either a, b or c
Does your definition of done include writing automated tests, at different levels, for both technical and non-technical requirements?
Python tip: Instead of -> if not a is b: Prefer -> if a is not b: Easier to read and understand.
"Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter." - Eric Raymond
JavaScript was developed by Brendan Eich in 1995 Javascript is often just-in-time compiled and is considered a core technology along HTML and CSS for web development. Javascript can be used both for front and backend development console.log("Hello World");
If there's a QA team in your company, set yourself the goal that they will not find any issues in your code.