Confusion in Programming: My Journey into Coding
Confusion is part of programming.
― Felienne Hermans, The Programmer’s Brain
The story starts with a beautiful quote that makes my journey into coding my first ever (!!!) 100%-by-me application makes sense. Hi, I am Khadijah, a Junior Developer (Apple Platform) at Apple Developer Academy @ BINUS. In this article, I would like to share about my journey in coding. This is kind of my first time writing this type of blog.
The author of The Programmer’s Brain, Felienne Hermans, does a great job of explaining the cognitive processes involved in learning to code. From what I read in this article, there are 3 types of confusion in programming. From my experiences, it turns out I experienced…all of it?
Programming before Apple Developer Academy: A Background Story
So this is not my first ever programming project. I have code before and I have done project-based programming during my time in college. At least in that, I have some experience.
But, talking about that experience is hard. It is murky. Mainly because I experienced personal problems in those times. That personal problems caused trauma, which is not related to coding in general, but since the personal problems I had affected my academic performance, and my academic degree is about programming (Computer Science), it turns out my programming skill is also impaired. If we’re talking in reference to the book I mentioned earlier, I think most of my long term memory (LTM) about those times are hard to access. That long term memory is crucial in the development of my programming skill.
On top of that, there was also my lack of processing power and my less-than-optimal working memory at the time because, as I mentioned, I had personal problems. I think this is why the projects I did during my time in college suffered.
Honestly, these experiences instilled a kind of fear and a sense of apprehension every time I realized I will code. But it turns out, there are differences between project-based programming with a team in college, and end-to-end application development by myself in Apple Developer Academy. I think, these differences also helped me cope with that fear and apprehension.
How Apple Developer Academy Changed Programming For Me
When we get into Apple Developer Academy, we became Junior Developer, Junior Learner and also Student. So everybody is a developer of at least one application, whether a designer or coder. We develop projects, and in this article I want to share more about my feelings in developing an AR app.
Honestly, I felt so many things when it was announced that we will be developing an application. I had many mixed feelings for coding. Fear, apprehension, anxiety, but also a little bit eager. You see, even though I had some bad experiences with coding, I feel like Apple Developer Academy makes learning everything fun. So, as I re-learn coding, I am eager to wire my brain to associate coding with fun.
Me and my study group got AR as our main technology. Ideation flew by in one day. I was undecided in day one, but by day two I knew that I will develop a space planning application. As I explored the feasibility of the project from coding and design, I decided that the scope would be wardrobe space planning.
I had no expectations for the project. Even as I researched and brainstorm with mentors through day 3, I had no idea that I would be able to finish the project, nor put the app on TestFlight. But, my friends and mentors convinced me I could do it.
Designing is tricky, but the AR mentor gave me feedbacks, references and even brainstorm with me so that I can make a native, best-practice design. Since I had no expertise in design, I set the bar low, which for me, to design in native style and minimum pages. It turns out, that fits quite well with AR.
With design, I try to do it in parallel with researching for programming. So my design process starts from day 4 to day 6. The first thing I do is set up the Sketch document I will use. After, I made my main page, which is the AR camera. I try to look up examples from Human Interface Guidelines website before I design so that I could develop the design in best practice according to native style. After I design and made the prototype, I asked for review from my design mentor. After I got the review, I improved my design and voila, on the 6th day, there’s my final design!
Now, comes the tough part. Coding. The bane of my development. Yet, strangely, it was not as hard to code now as it was then. I got many help from mentors and fellow junior developers. Off the top of my head, I learned these 3 things, which are:
- Find the right tutorials
I had to be specific with the framework I use. There are some frameworks in AR, which are ARKit, RealityKit, SceneKit, RoomPlan, and so on. RealityKit and SceneKit are different, and their usage cannot be equated. Even some frameworks use UIKit, not SwiftUI. I should really pay attention to the framework I use and find the tutorials which use the same base architecture. - Plan before code
Did you know that because I developed one last feature in the last day, I nearly broke my code by inadvertently using anti-pattern? This happens because I did not understand the basic of SwiftUI view, thus planned the navigation pattern incorrectly. I nearly created an endless sequence using navigation link. Props to my fellow junior learner for elaborating basic SwiftUI, arranging views and the need for “one single source of truth”. - It was fun to code
As I mentioned, my apprehension towards coding did not change during programming for my project. Yet, with the support of my fellow Junior Learners and mentors, I managed to fully code the MVP of the project. I managed to re-wire my brain. I feel like maybe because Apple Developer Academy @ BINUS is a safe place to learn and to fail, it addresses the fear of failure that I did not realize I had after the academic downfall.
After I fixed the bugs and determine the final app, I was gratefully able to publish the app on TestFlight. I followed the steps that was described in ChatGPT and from my fellow junior learner. I attached the tutorial that was used by my friend here.
Straight to the core, I think Apple Developer Academy @ BINUS changed me. I had the same 3 types of confusion. But Apple Developer Academy @ BINUS helped me conquer them. For Lack of Knowledge, workshops and tech session helped me a lot. For Lack of Information, ChatGPT, Google are there for me. I also feel like my processing power has improved a lot since my days of college.
For now, I think I am not able to share more than what my personal experience feels like during building an AR app. Maybe I will tell you another time about the AR app I built, or maybe another app I will build. Until then!
© 2023 Khadijah Rizqy Mufida. All Rights Reserved.