Last week, I made a poll on Twitter asking to share the best learning materials for iOS engineers and was overwhelmed with the number of responses. It was very insightful, and I thought it would be nice to compile the results into a single post, which I did here, adding a few recommendations of my own. Most RecommendedThere were a couple of outliers that got an absolutely massive number of recommendations. Standford: CS193p - Developing App for iOSBeginner, Free The Stanford University’s course CS193p was by far the most recommended resource. I went through the first few videos myself and was blown away by how packed they are with information. There are a couple of things to note about this course:
100 Days of SwiftBeginner, Free The second most recommended course is 100 Days of Swift. And it’s not the only resource on Hacking with Swift by Paul Hudson. There is a similar course on SwiftUI – 100 Days of SwiftUI, and there are a ton of other articles and videos. Unlike Standford’s course, 100 Days of Swift focuses not on app development, but on Swift itself. If you are just starting learning programming, this course is for you. Udemy - The Complete iOS App Development BootcampBeginner, Paid It seems uncommon for a paid course to get a lot of recommendations, but this one is an exception and it made the shortlist. I wasn’t able to check it out myself, but if you look at the course’s content, it does look complete. I think right now it might be a better option than Standford’s CS193p if you want to focus on the current technologies, such as UIKit. Ray WanderlichBeginner/Indermediate, Free/Paid This site doesn’t need an introduction. I often find myself using it in my daily work. Ray Wanderlich is the go-to place for finding tutorials on specific topics. But it has more than that. It also has courses, videos, articles, and even books. If there is an iOS topic you are interested in, chances are you’ll find it on this site. First-Party ResourcesI’m surprised nobody linked official Apple documentation in the thread. If I made this poll 6-8 years ago, I’m sure a lot of people would’ve jumped in the thread recommending it. Today, there are a ton of third-party resources that can oftentimes be better than what Apple provides. But despite that, the Apple documentation will always be my primary source of all the information on Apple technologies.
There are so many technologies on Apple platforms that you can’t just go and preemptively learn everything. It’s best when you have a project and you have a need. When you have a need, you have all the motivation you need to study something. Writing an article can also be a good motivator. Other RecommendationsI received a ton of recommendations in the original poll. Here I’m going to list the ones that didn’t make the shortlist, in no particular order. A word of caution – Apple platforms are constantly evolving, make sure what you are reading is up-to-date.
I’d like to add a couple links myself: iOS Dev Weekly, NSHipster, Use Your Loaf, Cocoa with Love, Little Bites of Cocoa, Krzysztof Zabłocki, Ole Begemann, Increment. Software EngineeringThere is more to software engineering than learning a programming language and a platform you are working on. If you want to get a competitive advantage among other engineers, especially if you don’t have a CS degree, invest time in learning the fundamentals. The good news is that degrees are overrated – you can learn everything they do and more by yourself. It’s not like you need any special equipment or anything. An incomplete list of everything that you should consider learning (in no particular order):
This list is far from being complete. There are a variety of specializations in software engineering. You can learn anything if you put your mind to it. I think adding new perspectives is valuable. For example, if you are a mobile engineer, it doesn’t mean that you can’t explore a bit of backend development to expand your perspective (especially now that’s it can be done in Swift). InterviewsSo you learned everything about iOS and software engineering, now you are done, right? Not quite. There is software engineering, and there are software engineering interviews. There is some intersection between the two, but completing coding challenges on an interview is very different from what you typically do at work. The main difference is speed. Not only do you need to be quick to be able to complete a task within a given timeframe, but you also need to explain your thinking to the interviewer, making it even more complicated. So it’s crucial to set a timer when you are preparing and optimize for speed and practice explaining what you are doing. Fortunately, there are a ton of tools to help you prepare for interviews. The gold standard is Cracking the Coding Interview, this is hands down the best resource that can help you prepare. I would also recommend leetcode. Another great resource is Tech Interview Handbook. Passing interviews is a special skill and you need to allocate time into learning it unless you want to miss out on some opportunities. Final ThoughtsEveryone’s path in software engineering is different. It’s highly technical and it requires a ton of time investment. But it can also be extremely rewarding and fun. I hope you’ll find some of the resources from this post useful and they’ll inspire you to learn something new! If you have any suggestions to the list, feel free to open a PR on GitHub or reach out to me on Twitter. I intend on keeping this post up-to-date. |
|
来自: jerry_tom123 > 《待分类1》