[{"data":1,"prerenderedAt":205},["ShallowReactive",2],{"blog-/blog/how-hard-can-it-be":3},{"id":4,"title":5,"author":6,"body":7,"date":190,"description":191,"extension":192,"meta":193,"navigation":194,"path":195,"seo":196,"stem":197,"tags":198,"thumbnail":202,"wordCount":203,"__hash__":204},"blog/blog/How Hard Can It Be.md","How Hard Can It Be...?","Stefano Rebulla",{"type":8,"value":9,"toc":183},"minimark",[10,14,19,31,50,57,61,64,76,79,103,110,114,129,132,135,163,180],[11,12,13],"p",{},"When I began my renewed programmer journey, I was coming from several different programming experiences from my past, at different levels. But while I still knew what a for-loop is, and that program logic is what defines \"what\" the program ultimately does, I quickly realized how I had missed some 20 years of evolution in building computer software. What was I getting myself into...?!?",[15,16,18],"h2",{"id":17},"flashback","Flashback!",[11,20,21,22,26,27,30],{},"I am the first to admit that I was quite blue-eyed when getting into this... When push came to shove in my professional life in early 2020, I decided to work on an idea I had in 2016 while on vacation. After all, implementing it wouldn't be ",[23,24,25],"em",{},"that"," hard, would it...? Here is a first part of my journey into becoming a modern ",[23,28,29],{},"\"coder\"",".",[11,32,33,34,37,38,41,42,49],{},"While I have ",[23,35,36],{},"some"," programming background, I have never had any formal Computer Science studies. Instead, I initially went for Mechanical Engineering, and Business studies later. Computers were being cautiously added in universities as they were in the contemporary business world: mostly as better typewriters, and generally as aids for personal publishing as the technology allowed. Some of you may remember those invitations to your neighbor's garden party, which looked like they came from a copy shop, but were instead printed by your host on their office laser, or cool new inkjet printer. Yes, ",[23,39,40],{},"that's"," what I am talking about here. Spreadsheets could mostly perform only simple math, and the few programming tools I had personally seen, like Borland's ",[43,44,48],"a",{"href":45,"rel":46},"https://en.wikipedia.org/wiki/Turbo_Pascal",[47],"nofollow","TurboPASCAL",", were seen as for hobbyists and nerds outside of companies.",[11,51,52,53,56],{},"When I was searching for a university at the end of my high school days, computer studies had not really yet been made into an individual course of studies in Europe in the early '90s. Getting any significant contact with computers would have required courses in math, engineering, or physics, or other science studies, but only in later semesters, after you had worn out your first calculator or two. Computers were ",[23,54,55],{},"expensive",", and installed only if and where absolutely necessary, at least in my world.",[15,58,60],{"id":59},"how-much-are-you-willing-to-learn","How Much Are You Willing To Learn?!",[11,62,63],{},"I digress. When focusing back on the topic of \"programming\", I was ready to learn a language and perhaps a couple of tools, but never to have to branch out to learning so many things that I would never have thought about previously. Also, I perhaps did not make it easy on myself to want to implement a complex idea as my very first app, but hey, it's all about the journey, isn't it? 😁",[11,65,66,67,71,72,75],{},"So, it all started with learning Swift and UIKit, because... well, Apple's iOS was my platform of choice since I had been an Apple user for many years. SwiftUI had been launched, but several YouTube channels were warning against using it for larger, complex projects, because it was still a very evolving framework that would need more time to mature. While \"evolution in CS\" terms is indeed very ",[68,69,70],"del",{},"Swift"," fast, I did not realize ",[23,73,74],{},"how"," much I had missed at first.",[11,77,78],{},"To begin, of course I had to re-learn the basic concepts of programming:",[80,81,82,86,89,92,100],"ul",{},[83,84,85],"li",{},"Basic programming concepts and structures in Swift;",[83,87,88],{},"\"Everything is an object\" and what this means;",[83,90,91],{},"Classes and structs, and the memory implications of each;",[83,93,94,95,99],{},"Referencing and calling other objects, ",[96,97,98],"strong",{},"without leaking memory",";",[83,101,102],{},"UI design and the constraints of a phone screen...",[11,104,105,106,109],{},"From my past experiences, I needed to embrace a completely new mindset, learn a ",[96,107,108],{},"lot"," of new information, and then test it all out. Oh, boy!",[15,111,113],{"id":112},"twenty-years-in-the-making","Twenty Years In The Making",[11,115,116,117,122,123,128],{},"When my mother donated me her PowerBook G4, I explored nearly everything Mac OS X could offer, since my latest on-hands use of a Mac had been with Mac OS 8 and 9 many years earlier. One of the tools that Apple was making available was Xcode, the new IDE platform that had been inherited and evolved from Steve Jobs' ",[43,118,121],{"href":119,"rel":120},"https://en.wikipedia.org/wiki/NeXTSTEP",[47],"NeXTSTEP",". While I was fascinated by what it could offer, I guess I was turned off by the effort I would have had to put into learning Objective-C and its, let's be honest, quite complex syntax for a beginner. Yes, Xcode allowed drawing out an interface in a ",[43,124,127],{"href":125,"rel":126},"https://en.wikipedia.org/wiki/WYSIWYG",[47],"WYSIWYG"," fashion, but there was still a significant hurdle for me to learn the language while having a quite demanding job at the time.",[11,130,131],{},"But here I am now, in 2020, as a Mac OS user of several years, and with an aging, though still very capable, Intel Mac Pro 5,1 at my disposal, and a strong desire to \"get into it\". Books used to be a great tool to learn programming, but over the years I realized that the ever-faster pace of the IT industry was outpacing the books being published, and understood that any book about computers and programming -- among other topics -- would be already \"old\" by the time it was commercially available, despite all best efforts by most authors to remain on the cutting edge while writing it.",[11,133,134],{},"My first choice, of course, were YouTube videos, and I searched far and wide for any video that would provide some instruction in Swift and iOS programming, but only found a few, and on very specific topics, most of which I had a hard time understanding, due to my lack of proper basics. Where do you get basics from in 2020?",[136,137,140,149,154],"callout",{"title":138,"type":139},"Side note","info",[11,141,142],{},[23,143,144,145,148],{},"I have an axe to grind with the YouTube algorithm of the time, as I later discovered ",[96,146,147],{},"many"," excellent channels that would have taught me a lot, even in that early stage, but which were shown to me only much later, after my search history had reached a tipping point of sorts, I guess.",[11,150,151],{},[23,152,153],{},"Also, as some will recall, the Covid-19 pandemic made many developers plunge into making videos from home, some even in the form of proper courses, though I may have been just a tad early in my searching to catch these. Still, I have now subscribed to a great number of you, and thank you all for your work!",[11,155,156],{},[23,157,158,159,162],{},"Finally, a ",[96,160,161],{},"shoutout"," to one of the main memes in the programming world: I, too, did find a video on a YouTube channel from India, with less than 10 subscribers, in Hindi, that actually solved a problem I was currently facing!",[11,164,165,166,171,172,175,176,179],{},"This is when I discover Udemy, and ",[43,167,170],{"href":168,"rel":169},"https://x.com/yu_angela",[47],"Angela Yu's"," iOS course stood out by a mile. She is an excellent instructor, with a beautiful \"radio voice\" that should have brought her to having a daily slot, teaching programming, on BBC Radio, and this is how it starts for me. I now had to catch up many years of knowledge, and wanted to get started working on my own project as quickly as possible. But many of the concepts I was seeing were entirely new to me, and I had to explore them on my own. ",[96,173,174],{},"Which. Takes. Time!"," I had to digest each course information, then extrapolate it into something I wanted to explore, and eventually build a number of \"apps\" (quotes are intentional here, because they didn't really ",[23,177,178],{},"do"," much) to consolidate the contents being presented.",[11,181,182],{},"I will write about all the different steps and tools I learned so far in a future post, as this merits a space on its own. But this is where and how my journey begins. I hope you enjoyed reading this.",{"title":184,"searchDepth":185,"depth":185,"links":186},"",2,[187,188,189],{"id":17,"depth":185,"text":18},{"id":59,"depth":185,"text":60},{"id":112,"depth":185,"text":113},"2025-05-04T17:01:13.000Z","How a Sales Guy decided to become a programmer","md",{},true,"/blog/how-hard-can-it-be",{"title":5,"description":191},"blog/How Hard Can It Be",[199,200,201],"Programming","Career","Evolution","/img/Boy-in-front-of-Apple-II.png",1277,"FxEzONMDTFPm_EPIoWeSkURdl-TqC7Fqf_nJQ8cp6Fk",1754110129427]