Avatar

brurberg.dev

Just another remote app developer

21.11.2018

Learn it the hard way

In the beginning of this month, I enrolled in a Udemy course. It’s a iOS development course, focusing on Swift 4.2. So far I think it’s pretty good. The course is more aimed at new developers, without to much previous experience, but you’ll get asked pretty early on about how much experience you have.

On this question I answered as honestly as I could (who are you fooling right? Only yourself). I answered something along the lines of: “I have been developing in other languages for more then a year, but been working with swift for less then 6 months”. I think this fit me pretty well, I’ve studied Information Systems and IT-managment (Some classes focused more on coding then others) from 2015–2018 and now have a bachelors degree in that field. The summer of 2017 I started to work professionally as a frontend developer. I worked my way into Javascript using both React and Vue. January of 2018, I started my development of my first React Native app. And over the autumn I started to learn Swift.

So what is the point of all this. I wanted to lay out what my background, and my summary is: I’ve touched multiple programming languages, I have some professional experience, and now I try to learn something new again. As I said, I like the Udemy course, the teacher is good, but I strongly disagree on my current lecture.

In the lecture I’m at, the teacher shows us how to do a http request, and how to deal with the response and what to do with the returned JSON. She’s using Alamofire to do deal with the request and uses SwiftyJSON to deal with the JSON. I personally know how a HTTP request works, and how to deal with the JSON in both Javascript and in Swift. One of the first things I wanted to learn in Swift was this process, I’ve written decodable structs and classes to fetch and parse my data. It’s not too hard, but it’s harder than using these CocoaPods.

I think it’s always better to learn stuff the hard way the first time. In this course, I wish (not for my self, but fellow students) that the instructor did not use CocoaPods for this in the course. In my Javascript adventures, I were thrown into the deep end of the pool pretty early on. I had to learn to swim pretty quick, but it worked. I now can swim pretty well, my technique is not perfect (does it become perfect at any point? Probably not) but I get my tasks done.

I think it’s better to learn things the hard way, because you should know how stuff works behind the scenes. And you should really know how a fetch, and how to deal with JSON works. This is in my experience really basic knowledge, and almost every application out there uses it in some form or another. What I want to tell you is: You should learn the basics before you use a package or CocoaPod to do the work for you. When you know how to do a fetch and how to parse and use JSON, then use a CocoaPod for it, and by all means, use Alamofire and SwiftyJSON, these packages looks awesome!

To summarize, it’s nice to have an idea of how the wheel work before you use it.