JACOB ROBINSONOpen.
← Blog ArchiveARTICLE 185 / 265

Blog Archive / JACOB ROBINSON

Some Brief Notes on Programming

After having tried and failed to learn how to program for many years, I’ve finally found the learning path that works best for me. I’d like to share that path just in case anyone else out there is feeling the same way.

A note before we start: I am by no means a programming expert. I’ve done some programming (obviously) and I feel pretty comfortable with it now, but I am a far cry from a PhD in Computer Science or a trained programming professional. Rather, the point of this article is to describe programming in a way that made sense to me, and might make sense to others. If you are already a programming expert, or are well on your way to learning programming, you will likely get nothing out of this article. If you want to learn programming but are stuck and have no idea how to start, there might be something for you here.

Another thing worth noting is that most of this is not my own ideas. Since I’m an amateur the last thing you probably want to hear is me wax about “programming best principles” or some-such nonsense. Rather this article is made up of bits and pieces I have heard from experts that I have then compiled into a single cohesive piece. With that stuff out of the way, let’s get started.

Practical

Our first section, Practical, will just tell you how programming works in order to do things. It won’t mention the more esoteric, academic mumbo-jumbo. I think it’s more important to learn how to do stuff first and figure out how it works later.

The idea behind a program is similar to a factory: it is that you’re taking a set of information (input) and shaping it into something else (output). A website takes site content and turns it into something readable and accessible via the internet. The Uber app takes all the drivers and riders out there and finds a way for them to come together into a marketplace. A videogame takes assets and compiles them into a living, breathing world.

The way that we convert inputs to outputs is via algorithms, the meat and potatoes of programming. Algorithms tell the program what to do with an input in order to make it an output. Usually, algorithms are made up of the following actions: conditionals, loops, and mathematical logic. Okay, really those first two are also mathematical logic, but let me keep things separated to make it easier to understand.

Conditionals are if-then statements. If I get coffee, then I go to work, etc. etc. You can make conditionals very, very complicated. Same goes for loops, which essentially just produce actions given a conditional (aka does something until a conditional is false). Mathematical logic, in the case I’m using it here, is being able to add, subtract, multiply, and divide.

An algorithm can take many forms. A single algorithm can take up an entire file, or just be a little chunk of a file (called a “function”). Large amounts of algorithms can also be simply imported into a file, to save you a ton of work from reinventing the wheel. These imports are usually referred to as packages. A big spoiler alert for programming is that 95% of the work is just installing and debugging said packages.

Of course, another huge part of this is the inputs and outputs themselves. These are referred to generally as data. Just like with algorithms, there is a lot of pieces that make up data: datatypes, variables, and arrays/dictionaries as a few examples. Datatypes are, admittedly, types of data (a string is a word, an integer is a number, a pointer is… well, you’ll learn it when you’re older). Variables are how we store data, either for its use as an input/output, or as an in between while we’re still using it for our algorithm. And arrays/dictionaries (known more generally as data structures) are ways to store a lot of data in one easily accessible place.

So we now know how programming languages work. There is, however, the challenge of learning a specific programming language. The bad news about programming languages is that there are a million of them out there. The good news is that, unlike real languages, there isn’t a whole lot of ways the fundamentals can change from one language to another. Virtually every programming language is made up of the pieces I have described to you. Sure, there can be different focuses in a language — for example, some languages are function-oriented while some are object-oriented — but in our practical minds, that really doesn’t make much of a difference. Once you learn one language really well, the process becomes easier for each subsequent language.

Mastery

As I have already told you, I am not a programming “master”. In fact, I will never be a programming master, because my use of programming insists solely upon making the things I need to make, and no further. But if you are interested in being a programming master, I did not want to leave you out. So here are some pieces of advice I’ve heard will take you down that path:

The first is that the fundamentals which I had mentioned above just aren’t going to cut it. On a practical level, we’re focused on getting things done — on a mastery level, we’re focused on getting things done effectively and efficiently. Hack solutions are no longer a priority. And because of that, we have to dive deeper in exactly what’s getting these algorithms and data to run.

Code is, of course, instructions for a computer. But how does a computer work? How do all those circuits, those ones and zeroes, those computer parts all translate into what you’re seeing on the screen? In order to be masters, we have to take away the surface-level approach and look at things more from a bottom-up perspective. Some electrical engineering knowledge is of course involved, though just to the extent that we know precisely how each piece of the computer gets us to where we need to go. When we have that info, we can find little “cheats” in the system that allow our programs to be better and better.

Take the pointers I had mentioned above, for instance. Pointers are things that “point” to a specific piece of memory in which a variable resides. This isn’t really something you’d have to worry about at a practical level but is something that’s important in mastery.

It is also worth noting that, at this level, any old algorithm isn’t going to cut it. As it turns out, some algorithms are much faster than others! People have even dedicated their entire lives to figuring out what are the fastest algorithms for a given task. At a practical level, you can probably just search “best algorithm for X” into Google and get 90% of the way there. Another shortcut that doesn’t count in mastery.

A big reason why these shortcuts don’t cut it at a higher level is because master programmers aren’t dealing with small little tools and toys as the practical ones do, but rather massive algorithms taking up massive amounts of data where speed and organization is everything. In other words, programming mastery matters a lot if you’re working at a company like Meta, but maybe a little bit less if you’re just trying to develop a custom todo app for your own productivity quirks.

…

So, I’ve reached the end of my notes. Hopefully this advice isn’t too controversial — there’s not really any hot takes I intended to put here. Based on this information, you might be wondering what next steps you can take. This is actually easier if you’re going down the “Mastery” route than the “Practical” one — you’ll need to learn a lot of theory, so you’ll mostly be on the ground reading textbooks, research, etc. on how all this stuff works. For practical programmers, the best next step is to try and build something you need. There’s plenty of “programming challenge” websites out there that give you ideas to build things like a todo list app or a calculator, but the problem is that most people don’t need todo lists or calculators because they already exist in abundance. If you don’t need it, you’re less motivated to make it. So if you need motivation to learn how to build something, it’s better to start from the angle of creating something brand new and/or tailored to your own specific needs.

Games are always a good place to start. A lot of people have ideas for games they’d like to play but don’t exist, and game development is a good way to learn a lot of practical programming skills rather quickly. The only downside to games is that making one (especially in the 3D space) is hard even for mastery programmers, and so depending on the game you envision it may be more easy to start with a simple app that might help you out. Either way, I hope you enjoyed this short list of recommendations!

[Image omitted]

Select text in the article to highlight it.

Your saved highlights

    Article contents

    Blog Archive · 265 articles

    1. 01 Five Takeaways from #100DaysofCode
    2. 02 Getting Past the Bump
    3. 03 How Important are Principles?
    4. 04 How to Avoid Writer’s Fatigue
    5. 05 The Dangers of Catastrophizing
    6. 06 State of the Union 2019
    7. 07 The Rise of the Personal Brand
    8. 08 Finding Adventure in 2019
    9. 09 5 Ways to Use Automation to Vastly Increase Your Efficiency
    10. 10 What you Should be Doing Instead of Networking
    11. 11 Creatives vs. Technicals: Which Should You Focus On?
    12. 12 The Difference between Quitting and Giving Up
    13. 13 3 Ways To Get Value Out Of Nature
    14. 14 What is the Purpose of Dreams?
    15. 15 How to develop intellectual success in future generations
    16. 16 What the Definition of Luck Really Is
    17. 17 Who Makes the Culture?
    18. 18 Sexual Frustration and Trying to Find Love in the Age of the Internet
    19. 19 The Lazy Man’s Guide to More Efficient Research
    20. 20 How One Joke Can Ruin Your Life
    21. 21 Why IQ is BS
    22. 22 Why it’s Impossible for the Illuminati to Exist
    23. 23 Some of my Favorite Blogs
    24. 24 The Most Important Indicator on Why a Company Succeeds
    25. 25 Returning to Tesla
    26. 26 Living in a Post-Truth World
    27. 27 The Function of Success
    28. 28 Lessons at 20
    29. 29 If the Recession Happened This Year…
    30. 30 Why People Don’t Read
    31. 31 Social Media and Truth
    32. 32 Making Things 1% Better
    33. 33 What the Book of Job Really Means
    34. 34 Life as a Game
    35. 35 The Function of Opportunity
    36. 36 Exponential Growth
    37. 37 The Machine Learning Revolution
    38. 38 Practical Thoughts on Blockchain
    39. 39 Why the Humanities Are Just as Important as STEM
    40. 40 Dow 30,000
    41. 41 The Shame Economy
    42. 42 You Can’t Do It All Alone
    43. 43 Favorites of 2019
    44. 44 State of the Union 2020
    45. 45 The Tolerance Paradox
    46. 46 Null
    47. 47 Social Game Theory
    48. 48 3 Tips for Developing a Positive Mindset
    49. 49 Why Social Gaming is So Popular
    50. 50 A Design Study on YourStack
    51. 51 Relationships, Careers, and Investments
    52. 52 The Fall of GAFA
    53. 53 Wartime CEO
    54. 54 Mass Shooting Cycles
    55. 55 But Who’s Right?
    56. 56 What Matters in the End
    57. 57 Is AR/VR too “weird”?
    58. 58 Convenience + Efficiency
    59. 59 Vicious Cycles
    60. 60 With Smart People
    61. 61 The Third Moat
    62. 62 The Secret to Success
    63. 63 The End of Education
    64. 64 The Ben Carson Effect
    65. 65 Biological Evolution, Cultural Evolution
    66. 66 Suicide and the Self
    67. 67 The Life Cycle of a Business
    68. 68 How to Get into Harvard
    69. 69 Managing Your Personal KPIs
    70. 70 Fog of War
    71. 71 Make-or-Break vs. Nice-to-Have
    72. 72 Identity and Political Groups
    73. 73 Nationalism’s Pros and Cons
    74. 74 How to Win an Election
    75. 75 Why You Shouldn’t Network
    76. 76 On Relative Morality
    77. 77 Death in the Age of the Internet
    78. 78 Audience of One
    79. 79 The Rise of Anxiety
    80. 80 Stop Getting Scared By AI
    81. 81 If You Build It, They Will Come
    82. 82 Building Knowledge Advantage
    83. 83 The Quest to be Kinder
    84. 84 Everything You Do Sucks
    85. 85 Niche Monopolies
    86. 86 Up Shit Creek
    87. 87 Emotional Equivalent Salary
    88. 88 Uncertainty Principle
    89. 89 Building a Startup with Anxiety
    90. 90 Punishment and Forgiveness
    91. 91 Favorites of 2020
    92. 92 State of the Union 2021
    93. 93 Random Factor Social Suicide
    94. 94 Old World Business, New World Business
    95. 95 The Customer Takes Care of Itself
    96. 96 How to Use Reddit as a Business
    97. 97 Genetic Obsolescence
    98. 98 A Social Capital Theory of Management
    99. 99 If I Could Do My Education Over Again
    100. 100 Aggregation and Decoupling
    101. 101 The Crazies, Part II
    102. 102 Art as Inspiration, Art as Education
    103. 103 Free to Play Models for SaaS Services
    104. 104 A Recap on my 2020 Politics Posts
    105. 105 Making Mistakes, Post-Internet
    106. 106 Taste is Not Tech
    107. 107 Immortality
    108. 108 Biases Against Consistency
    109. 109 The Mythical Self
    110. 110 Faulty Mental Models
    111. 111 Honor and Glory
    112. 112 Momentum, and the Value of Cold Showers
    113. 113 The Prestige Myth: Providing Structure to Structureless Forms
    114. 114 The Unluckiest Man Alive
    115. 115 Those Who Make, And Those Who Work
    116. 116 Post-Truth, Revisited
    117. 117 Conscience Questions, Unchristianized Edition
    118. 118 On Being You
    119. 119 Effective versus Efficient
    120. 120 The Experimental Method of Learning
    121. 121 A New Model for Teaching Humanities
    122. 122 A Dialogue on Mindset
    123. 123 I Am Not Your Friend
    124. 124 My 5 Tips Towards Reading Books
    125. 125 Buying Immortality
    126. 126 Do this, but…
    127. 127 Leverage and Wealth: A Simplification
    128. 128 Mind’s Eye and Creative Application
    129. 129 Intersection of Technology and Art
    130. 130 Blog Writing for Robots
    131. 131 10 Tips on Writing
    132. 132 The Cost of Staying Alive in America
    133. 133 Taste on the Margin
    134. 134 Top 10 Tools I Use in 2021
    135. 135 Income Generators 101
    136. 136 Strategies for David, Versus Goliath
    137. 137 Progress in the Long Term
    138. 138 The End of Journalism
    139. 139 Myths of People
    140. 140 Heroism
    141. 141 External Mentors
    142. 142 Favorites of 2021
    143. 143 State of the Union 2022
    144. 144 The End of Gender
    145. 145 The Work After Work
    146. 146 There Is No Metaverse
    147. 147 On Dealing With Chaos
    148. 148 Risk/Return Bets in Entrepreneurship
    149. 149 The Weird, Magical World of Modern Day Quora
    150. 150 On Business
    151. 151 What’s “Hivemind”?
    152. 152 Life as a War
    153. 153 On Culture
    154. 154 My Approach to Investing
    155. 155 Stop Caring About Your Reputation
    156. 156 On Humility
    157. 157 Is Relative Morality Helpful?
    158. 158 Achievement-Based Thinking
    159. 159 On Success
    160. 160 Moral Implications in Maximums and Minimums
    161. 161 Sentience and Suffering
    162. 162 On Improving
    163. 163 The Suicide Disease
    164. 164 Social Diversification
    165. 165 On Meaning
    166. 166 Convenience and Pareto Optimality
    167. 167 Mental Illness is Not a Permanent State
    168. 168 Biased Science
    169. 169 People as Means
    170. 170 Being Wise and Being Smart
    171. 171 The New Working Class
    172. 172 Fitness, Suffering, Self
    173. 173 Political Theory and Evolution
    174. 174 Explaining my Rating System
    175. 175 Why You Might Want A Trading Account Over An IRA
    176. 176 Why NFTs Don’t Work For Games
    177. 177 A Few Thoughts on MMOs
    178. 178 A Review of MyMind
    179. 179 Read, Think, Make, Share, Monetize
    180. 180 Is Science Perfect?
    181. 181 A Guide to Fiction Writing
    182. 182 The Productivity Tool World Tour 2022
    183. 183 My Daily Routine
    184. 184 The Curse of The Conqueror
    185. 185 Some Brief Notes on Programming
    186. 186 My Life Principles
    187. 187 Cyberpunk in 2022
    188. 188 What Decides Good Art?
    189. 189 Trends in Mass Murder Techniques
    190. 190 Changing to Fit the Times
    191. 191 Why Did Photographers Embrace NFTs, but Artists Didn’t?
    192. 192 Favorites of 2022
    193. 193 State of the Union 2023
    194. 194 New Blog Post Schedule
    195. 195 Was Lex Fridman’s “Reading List” Controversy Caused by Mass Psychosis?
    196. 196 Is Notion “Too Good”?
    197. 197 Mastodon is Social Media PvP with Permadeath Enabled
    198. 198 Arc, Vivaldi, and the Next Generation of Browsers
    199. 199 Is the Four-Hour Workweek Actually Possible?
    200. 200 Do Not Obsess Over Your Customer. Obsess Over Your Community.
    201. 201 Why Big Entertainment Failed to Bring in Diversity
    202. 202 My All-Time Favorite Tools
    203. 203 Museums on the Computer
    204. 204 How to use AI to get you motivated to work
    205. 205 The Best Way to Focus: Do Nothing
    206. 206 Can Buddhism and Ego Intertwine?
    207. 207 How I Write My Blog Posts Now
    208. 208 Practice and Mysticism
    209. 209 Automate the Boring Stuff with ChatGPT
    210. 210 State of the Union 2024
    211. 211 The Secret to Great Products You Aren’t Doing
    212. 212 How to build a $5 billion dollar business in 5 minutes
    213. 213 How To Easily Automate Investments, Beat Big Tech, and more!
    214. 214 Can I Use AI To Solve The World’s Unsolvable Problems?
    215. 215 How A “Taste Matrix” Can Improve Your Art And Kill Writer’s Block
    216. 216 My Bizarre, Counterintuitive, and Lifechanging Approach to Work
    217. 217 Top 3 Recommended Browsers (They Aren’t What You Think)
    218. 218 How Hard Is It To Make Money On Steam?
    219. 219 What To Do If You’re Socially Anxious
    220. 220 My New New Way of Reading Books (I Abandoned AI)
    221. 221 References Are The Best Way To Learn Anything
    222. 222 How To Quit Planning Goals And Start Achieving Them
    223. 223 The Only Good Self-Help Book
    224. 224 Be Nice To Everyone. It Just Might Save Your Life.
    225. 225 I Learned An Ancient 3-Step Process And Became A Master Meditator
    226. 226 How Canva Became The Home of Everything
    227. 227 Has The Internet Made More People Mentally Ill?
    228. 228 The Biology Behind Why We Like Stories
    229. 229 This Tape Haunted An Entire Nation. But Was It Even Real?
    230. 230 We Are All Most Certainly Going To Make It
    231. 231 What Makes Good Taste?
    232. 232 In a World of Cancel Culture, Reputation Doesn’t Matter Anymore
    233. 233 Why You Hate Diversity In Media
    234. 234 I Used Readwise for 200 days. Here’s what happened.
    235. 235 Lessons on Bootstrapping Solo with Little Income
    236. 236 This Ancient Story Was Drowned In Lies. The Truth is Much More Interesting.
    237. 237 How To Get Actionable, Memorable Advice Out Of Anything You Read
    238. 238 You Are A Coward. And That’s Not So Bad, Really.
    239. 239 Time Travel is Real. Here’s How to Use It.
    240. 240 How I Got Into Old Games
    241. 241 Is Every Story Political?
    242. 242 Your Culture Decides Your Fate
    243. 243 In Defense of the Jumpscare
    244. 244 Final Fantasy XIV’s Story Is A Mess
    245. 245 Markov Chains and You!
    246. 246 I used Obsidian for 90 days. Here’s what happened.
    247. 247 Ideas That Can Kill You
    248. 248 Porting A 250k+ Item Database from Notion to Obsidian
    249. 249 Why the Fast Inverse Square Root Matters
    250. 250 A Deep Dive on Networking
    251. 251 A Deep Dive on Cybersecurity
    252. 252 Converting a $100k+ Trading Algorithm from Excel to Python
    253. 253 How To Make A (Super) Hard Drive From Scratch
    254. 254 So, How Do Computer Graphics Work?
    255. 255 The Quantum Physics Rabbit Hole, Part I
    256. 256 The Quantum Physics Rabbit Hole, Part II
    257. 257 The Story (and Meaning) of Humanity’s Greatest Achievement
    258. 258 Explaining Tonal Indicators
    259. 259 AI should have you thinking MORE, not less
    260. 260 Forbidden Knowledge: The Vela Incident
    261. 261 All success in life comes back to pain tolerance
    262. 262 The AI Revolution rewards the curious
    263. 263 Forbidden Knowledge: Marco Evaristti
    264. 264 Forbidden Knowledge: Casket Failure
    265. 265 Forbidden Knowledge: Coriander Theory

    Share

    Make it your own before sharing.

    Page link

    Send to

    EmailWhatsAppBlueskyFacebookX

    Facebook shares the link only; add your message there.