Skip to main content

Posts

Three things I learnt from The Pragmatic Programmer - Chapters 5 and 6

Link to previous chapter here. Here are the three things I learnt from these chapters: 1. I'm at the start of my journey and it's totally okay not to understand everything. I do not have to force myself to read things that make no sense to me yet. At some point I'd love to come back to this book and see what I can learn here as I'm sure its good.  2. Elixr, a functional language, has a pipeline operator that takes the value on its left and insert it as the first parameter of the function on the right. It's a more readable way of transforming data. Thinking of code as a series of nested transformations helps make functions shorter. 3. Be careful with inheritance. It can get messy if not all of a parent's methods are suitable for the child, or if the parent's code will ever be edited. Try things like traits/mixins/delegation/interfaces instead.
Recent posts

Three things I learnt from The Phoenix Project

Recently I read the Phoenix Project by Gene Kim, George Spafford, and Kevin Behr. Here are the things I learnt: 1. I much prefer reading a novel to a textbook. This was a great book to trick my brain into learning DevOps basics without having to read a textbook. I shall have to find more books like this. 2. DevOps is when developers and operations work together to create a seamless process that delivers features quickly. 3. Good IT teams could often use the following: - Kanban boards for visibility of all work that's in progress - Teams where knowledge is shared and documented instead of staying with one person - All people understanding the prioritisation of their tasks - Prioritisation of tasks to follow the goals of the business as a whole - Well designed environments and processes so that changes can be deployed up to multiple times per day into production - Security and controls that are built into deployment - Management that is open to change I enjoyed this book and will rea...

Three things I learnt from The Pragmatic Programmer - Chapter 4

 Three things I learnt from The Pragmatic Programmer - Chapter 3.  Link to chapter 1 here.   1. Balance Resources. If you have a large piece of data that is accessed in your program, don't forget to close it. If a variable, set to 'Null' when done so garbage disposal can delete it. Always allocate resources in the same order, and de-allocate in the reverse. 2. No one writes perfect code - use assertions to check you have the data you expect. You can't rely on testing to catch every eventuality. 3. Avoid big feedback delays, try things out in small steps instead. Try using REPLs to understand a new API. Use unit tests on new pieces of code. Link to next chapter here.

Three things I learnt from The Pragmatic Programmer - Chapter 3

Three things that I learnt from the Pragmatic Programmer - Chapter 3.  Link to chapter 1 here.   1. Achieve editor fluency to make you so much faster. Try to do the following without using the mouse and preferably in one keyboard combo:     - select characters, words, lines, paragraphs      - format and indent code       - comment/uncomment block of code      - undo and redo changes     - spilt the editor into multiple panels     - navigate to a line number     - search for strings     - create multiple cursors based on a search term     - run all tests     - find compilation errors 2. Debugging but can't find a bug? Use the Binary Chop method - split code in half. Which half causes the bug/gives you unexpected values? Repeat. Most efficient way to track it down. 3. Keep an 'Engineering Daybook' or personal physical notebook. Keep important things you jot down in ...

Three things I learnt from The Pragmatic Programmer - Chapter 2

  Chapter 1 link here I'm currently reading  a book called  The Pragmatic Programmer  by David Thomas and Andrew Hunt. The first chapter is an easy read, all common sense. The second chapter starts introducing code and is a little more technical. Here are three things I learnt from the second chapter: 1. Every design principle is there to make your code easier to change (ETC). If you're not sure what code design principles to follow and when, use ETC as a guide. 2. Eliminate effects between unrelated things. (Increase orthogonality - parts of code that don't rely on each other). Keep code decoupled, avoid global variables, avoid similar functions, be careful of third part toolkits. 3. Get good at estimating. Every time you have a task, estimate how long it will take. Think about each little step in the task before you provide an answer. When you finish the task write down how long it took, and if you can, why your estimate was wrong. You'll learn to spot patterns....

Three things I learnt from Animal Crossing

Like many people during lockdown, I ordered a copy of Animal Crossing New Horizons. I also want to escape my real life chores by ... performing daily chores in cuter format? Several months later, I'm no longer playing daily, but each time I do return my experience is a calm, joyful one. Here are the three things I learnt from the game: 1. Don't compare yourself to others. Yes some people have the most gorgeous islands. Some people also have far more free time. Some are more talented. Copy ideas you like, because why not? It's just for you and your friends to enjoy. 2. There's such joy in creativity - try out a little bit, don't jump in attempting to make everything exactly how you planned it from day 1. Perfectionism is the enemy of creativity. 3. If you're playing a game and feel stress more than enjoyment - it's time to take a break. Remember it's only a game, rotten turnips have no negative impact on your real life. This game in particular rewards...

Three things I learnt from The Pragmatic Programmer - Chapter 1

 Currently I'm reading a book called The Pragmatic Programmer by David Thomas and Andrew Hunt (20th Anniversary Edition). It's great to read at the start of my career as it shows me what I'm aiming for and why I need to keep learning.  The three things I've learnt from Chapter 1 are: My career is my own. I have the power to make it as personally satisfying and rewarding as I can.  Quality matters, keep on top of it as you go. This includes documentation, build it as you go along. It'll slow you down today, but speed you up next time you look at your code. Keep learning. Read about new technologies, developments and tools. Try things out. Knowledge can quickly become stale. Chapter 2 link here