How to become an iOS developer in 2021

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
sponsored by instabug who have an sdk to help you minimize debugging time by providing you with complete device details network logs and reproduction steps with every bug report find out more at instabug.com hello my name is paul and in this video i want to walk you through what i think it takes to be an ios developer in 2021 now i'm aiming this squarely at two kinds of people the first is absolute beginners folks who have never learned swift or building ios apps before at all the second type is so called false beginners folks who've tried to learn swift in the past but never really reached their goal of having that junior level job that first entry level job in the industry now regardless of what level you are right now the goal here is the same to get you in the right position so you can apply for those junior entry level jobs your first rung on the ladder of ios development now we're going to talk about the skills you should be learning the courses you can take how to get connected to the community common mistakes folks make and much more most importantly everything i'll cover in this video is completely free you haven't got to spend a penny to follow along now seriously too many folks imagine that spending a ton of money is the fast track to reaching their dream job when really you only need willpower and determination that's it here's a hint for you if you're already thinking i should skip ahead in this video maybe you want to work on your willpower slightly more now there are seven sections to this video the first one is core skills you absolutely have to learn to get a job the second one is extension skills that will help set you apart from the pack when it comes to applying for your job the third one is common mistakes folks make when they're learning the fourth one is resources you can use to learn swift and more that are completely free the fifth one is how you can connect to the ios development community and make friends and network that way the sixth one is an idea of how long it'll take to reach your goals the seventh one is preparing to apply for that first job okay let's get into it what are the core skills you need to be an ios developer now this is the absolute minimum skill set i think you need to get started i think really there are five things in total swift swift ui working with data networking and version control those are the five things and that list is super short intentionally for a number of reasons first the more you learn the more you realize there is to learn so it's easy to spend so much time studying and practicing that you lose sight of the actual goal you i hope want to get a job as an actual ios developer not to sit around learning new things as much fun as that might be second it's almost certain you'll be joining a team that already has an existing app they want you to help develop that app so unless you get extremely lucky they have to teach you a whole bunch of new things regardless if you try and cram all that stuff in beforehand there's a good chance you're just wasting your time they don't need the skills you learned third two of those five things my core skills are really complex and you can spend months just trying to wrap your head around them without even venturing anywhere else the fourth reason is a short list is most importantly if you get those five basic things right you can build a huge range of apps already sure your code's not gonna be perfect but that's okay the only way to write great code is to write a whole bunch of bad code first okay let's break those five things down into smaller chunks first in the list is swift this is the core programming language from apple it has no concept of showing information on an iphone screen or downloading data from the internet or just language like javascript or python and more use it to create variables write functions and so on it's just pure code swift is only a few years old which means it uses almost every cutting edge language feature out there on the one hand this means you can avoid all the crusty old behaviors that are so common in very old languages like c plus plus and java but it also means you get quite a few advanced features that might blow your mind at first quite frankly it's challenging and that's okay right lots of parts of swift are relatively straightforward and some parts take you longer to learn that's just normal take your time and keep at it you will get there the second core skill i listed was swift ui which is a framework from apple to write apps for ios mac os tvos and even watch os all using swift the language so while swift is a programming language swifty provides the tools that let's build apps using that language how to show pictures how to write text how to make clickable buttons or text boxes or tables of data and more so just to be clear swift ui isn't somehow a replacement for swift it's a framework built on top of swift lets us make apps so you need both swift and swift ui in order to succeed now if you thought swift was new you ain't seen nothing yet unless you record this swift ui isn't even two years old but despite being so new the ios community has really embraced it wholeheartedly it's just so much fun to work with now apple has an older framework for building apps called ui kit and you ask a bunch of folks whether you should learn swifty y first or ui kit first you're gonna get a whole range of answers in fact there's every chance if you look in the comments below this video you'll find a bunch of folks telling me i know nothing at all i don't know what i'm talking about because ui kit should be a massive priority um so in case you're curious here's why i think you should focus on swift ui as a core skill first it is significantly easier than uikit and i mean significantly right it takes maybe a quarter of the code to get the same results you'd have a new i kid sometimes much much much less even more than that plus you have fewer things to learn along the way this means you get a lot of momentum you get movement you get success because you're building things faster you see your results faster and you iterate on those results faster which is super motivating when you're learning second swifty y was built for swift using language features to help you avoid problems and get maximum performance for example if you change some data on one screen of an app swifty while make automatically make sure that new data is in anywhere else in your app be refreshed automatically you're going to write code try and keep it all in sync yourself which is surprisingly complex in comparison uikit is built for apple's older language objective c as a result has all sorts of quirks and craft that came about as a result of its age third swifty wire works on all of apple's platform so you can take what you learn in ios and use it to build a brilliant mac os app or a watch os app with almost identical code now sure some things like digital crown only exist on the apple watch only on one device but the vast majority of what you learn will work everywhere but fourth most importantly swift ui is where things are going now if you're applying for a job now like today then fine you probably have to know you like it but as you're watching this video it means you're probably much earlier in the process yes ui kits more popular today but by the time you finish learning in six or months or nine months or even 12 months from now swift ui will be the dominant ui framework i have no doubt about that at all seriously the world's biggest companies are choosing swifty ui including apple itself in fact apple they recently launched widgets in ios 14 and made it a requirement you must use swift ui in widgets ui kit is just not possible there doesn't work now the third and fourth skills i mentioned were networking and working with data now compared to swift and swift ui these are a piece of cake right releasing out the level you've got to be to get a junior ios developer job networking is a practice of fetching data from the internet from a server somewhere or sending data from a local device to a server somewhere so you either get it or you send it there are stacks and stacks of ways of doing this but honestly the absolute least you have to know is how to fetch some json some data from a and that's where the other core skill comes in working with data again there's a huge range of ways you can load and save and manipulate data but the absolute least you've got to be able to do is convert that data you get from a server use your network code into some kind of thing your app can show so grab some json from a server grab some data from a server load it somehow and show it on the screen networking and working with data these are the skills so really the the third and fourth skills go hand in hand fetch something from a server converts what information you can show on your app now some developers joke this kind of code is actually half the job of ios developers and it's certainly true we use these skills a lot hello dogs how you doing now the last skill isn't really coding at all it is version control so i'll just give my dog a treat come on you come on up it's version control which is using something like get good girl again you don't have to know much here just like networking right but it's important you put your code somewhere you publish your code somewhere like github so recruiters interviewers can see your code publicly come on honestly genuinely i don't think anyone in the world even the git maintainers who write git truly understand how all of git work they just don't and that's okay you just need to know enough of the basics to store it safely put your code somewhere and to work alongside others that's it nothing more than that so putting those five together there are two massive ones swift and swifty y plus three smaller but still important ones and honestly if you can just focus on those five things without getting distracted you'll make massive strides towards your first ios developer job and that's it those are the five core skills i think you need to be an ios developer there are thousands of folks out there who only have those skills and can build and ship fantastic apps on the app store but what comes next what comes after those core skills so once you've really gotten get grips with those uh five core skills you are absolutely 100 in a position to ship your own apps and work as an indie developer and also in a position to apply for jobs junior entry-level jobs that work for a company there are no special qualifications you need get those five core skills down you're in a good place but if you've worked your way through those five and you want to go further there are five extension skills i would encourage you to consider learning these skills that will take you from your good place up to being in a great place you'll be even more employable and the range of apps you'll be able to build will grow even further the five extension skills i believe you need are one ui kit two core data three testing four software architecture and five multi-threading as before i will explain those in a bit more detail so you understand why i think they're important and why i consider them extension skills and not core skills first ui kit like i said this is apple's older ui framework and it's been used a building app since 2008 right it's 13 years old as i'm recording this which in software terms is old right it's almost ancient but it doesn't mean ui kit is bad and in fact as you become comfortable with uikit the way it works which takes some time i agree you'll be surprised at how elegant it is now there are lots of things that make ui kit worth learning including the fact that hundreds of thousands of apps have already been written in ui kit and so if you're joining a company with a large well established app out there you will almost certainly have to write some ui kit code to maintain that code second up ui kit is significantly more powerful than swift ui there are some things many things you can do in fact in ui kit that are not possible in swift ui at this time wdc21 probably a few months away now i expect it will change but right now ui kit can do many things with ui cannot third up you can create extraordinarily precise layouts using technology called auto layout from ui kit and fourth if you hit problems in your code there are simply more solutions in ui kit than in swift ui simply because it's been around longer been around i mean since 2008 it's it's old so lots of questions and answers been posted already for you to learn from now you might think all that makes ui kit sound great so why is it an extension skill why is it not a core skill well because ui kit has problems too first almost everything is harder to do in ui kit than swift ui it just is some things will take you literally a hundred times as much code to do in ui kit than in swift if not more i mean it's a lot swift ui is made specifically for modern ios development make it as easy and convenient as possible so it does vast amounts of work for you second because ui kit wasn't written for swift you'll find it has all sorts of features that you forget about you've got to worry about with swift ui lots of implicitly unwrapped optionals lots of marking co with a special object attribute to make it available to ui kits objective c underbelly lots of having to use protocols and delegates to show simple data and fourth nothing about auto layout is auto in fact if you ever do have to try and build a complex layout there's a good chance you'll have nightmares about auto layout it's extremely clever but also extremely hard in places and that's why i consider ui kit to be an extension skill it takes significantly more time and effort to learn compared to swift ui which in turn means it takes a great deal more determination you've got to really want to learn it to fight to learn it otherwise you'll be confused bored angry or potentially all three at the same time so yeah shift your wires knock all the features of ui kit but at least you make quick progress you feel a sense of momentum and success before you go on to move on to ui kit later on the second extension skill i talked about was core data which is apple's framework for storing application data now in the core skills section i listed both networking and working with data and it's true with those skills you can fetch something from a server and show it in your app what core data does is go a step further it lets you manipulate that once you have it for example searching for particular values or sorting results and more all very efficiently it also links up to icloud so you can get user's data synchronized across all their devices very easily now core data has a whole bunch of downsides which the biggest one being it's just not very pleasant to work with coordinator is about as old as ui kit although it worked great with objective c it just does not feel comfortable in swift it does have good integration with swift ui which makes it feel a bit less strange but it's still a surprisingly complex topic so why do i consider an extension skill because like ui kit called it has been extremely popular hundreds of thousands of apps out there have been built using core data and it's used in many companies large and small also like ui kit coordinator is really powerful although you can recreate most important parts by hand if you want to why would you want to the third skill on my extension skills list is testing writing special code that tests your main application code works the way you expect to work the way it should work our tests allow us to be sure our code works correctly and more importantly make sure it continues to work correctly after we've made significant changes to it if you change 500 lines of code over here to add a new feature and all your tests still pass you're good to go so testing is important and it will help you write better quality software so why then is an extension skill and not a core skill well there are three reasons first up for whatever historical reasons the ios community as a whole is just bad at testing i mean really really bad at testing many apps big apps have hardly any tests at all i've lost track of how many senior ios developers i've met who are almost proud they never write tests i no i don't understand it either i don't i get it it's just weird okay second up when you think of all the remarkable things you can build apple's tools and frameworks honestly it just doesn't seem much fun to write tests in comparison now i personally enjoy writing tests in the same way i enjoy flossing my teeth but i know many people just don't find them exciting particularly on personal projects the third thing when you're applying for a job having knowledge of swift and apple's major frameworks like swift ui and ui kit will always be more beneficial than about writing tests companies would much rather you know to use 50 wire ui kit or one of the other big hitters because in comparison testing is a significantly smaller topic there aren't nearly as many things to learn there so testing is important testing absolutely matters and i would love you to grasp how to write unit tests really well but do it after you've grasped basis of building apps get some success under your belt feel the sheer excitement of having your app on the app store live for millions of users and then get to grips with testing that's my advice the fourth extension skill i want to talk about is software architecture which reads about the way we write our code now you're just learning you're going to write frankly terrible code code so bad it probably breaks the geneva convention and that's okay because that's how you learn you don't just start good you get good by being bad for a very long time just as lebron james wasn't born a champion basketball player born with no idea of basketball and then learns and learns and learns and gets great over time the point is you persevere with your bad code until you learn to do better and that's where software architecture comes in these are proven techniques for structuring your code to make it easier to read easier to use easier to modify easy to take care of in the longer term and sometimes these techniques rely on the way swift works language features to help you write better code but there are many other techniques that work in any programming language and we call these design patterns now one major point you should start to learn about as part of the skill is how you break up your code for example if you're building one screen in your app you have a login button an image gallery and a list of friends all on this one screen but ideally you you make each of these parts separate components a login button component an image gallery component a friends list component so you can reuse these components in other parts of your app as you need to now software architecture is much more subjective than the other skills i've mentioned so far for the others you know you can say well i know how to do x y and z in swift ui so i feel confident i'm a good swift ui developer software architecture is a a very broad topic and honestly a lot of it is not that objective there's no obvious right way to solve a problem i think the best benchmark for it is this if you look back on your code from six months ago or a year ago or three years ago and so on do you think wow that code is bad again writing bad code is okay as long as it's putting on the track to writing better code i certainly look back on code i wrote five years ago and just grimace in places i know way more now than i did back then and that's good that's normal the fifth and final extension skill i want to talk about is multi-threading which in simple terms is the practice of making your code do more than one thing at a time now multi-threading can be a real headache to work with because it's just hard for our brains to understand when your code does one thing at a time we can think it through linearly but when two or three things happen at the same time potentially overlapping each other it can really bend your brain so although multi-threading is a great thing to have as an extension skill you got to be careful your goal ought to be to understand just enough of the concepts and the code to make it work well without going a great deal further honestly a lot of developers think multithreading will make their code run three or four times faster immediately and in some cases it will but in many other cases your code will actually run slower and now you have all the additional complexity to deal with in your head if you don't believe me check out this quote from david smith uh he's one of the swift team at apple and previously spent years working on the very core of apple's frameworks he said my concrete recommendation is this you should really strongly consider not writing a synchronous slash concurrent code i know it sounds weird in 2018 but the cost and complexity and performance is high so learn a little of how multi-threading works in swift just so you can see the concepts and implementation but try not to go overboard now at this point i've outlined all the core and extension skills i think you need in order to work as a full-time ios developer but i also want to talk about some of the most common mistakes folks make while learning because i see these a lot i know it just sets people back just to give you an idea my site teaching folk swift has over 700 000 unique visitors every month so there are over 5 million page views a month so i feel pretty comfortable in saying i know the common mistakes folks hit there are seven in total i think and i want to cover them order they are memorizing everything shiny object syndrome lone wolf learning using beta software relying on apple's documentation getting lost in objective c and taking shots out of the languages let's walk through each of those individually the first and by far the most common problem folks hit is trying to memorize everything reading through a tutorial and thinking they must remember everything in there by heart please please please do not do that it's a recipe for disaster it will suck all your willpower out of you until you never want to program again no one memorizes everything no one even comes close to memorizing everything i don't come close to do it nowhere near close even if you just think about the the the apis apple publishers which is which the pieces of cobra use to build our apps you must see well over a hundred thousand of them out there if you restrict that to just the core components of app building there's probably still several hundred if not well over a thousand or work in a very precise way that requires a lot of learning to utilize instead what happens is you learn how to do something new then promptly forget it so you look it up and use it again then promptly forget it again you look up a third time and you use it and this time you mostly forget it some parts do stick in your brain just through sheer bashing it in there eventually right this repeats again and again each time you have to refer to a tutorial or some other reference guide to remember how to do it until eventually the really core things have stuck in your head to the point where you can do it without referring elsewhere oh hello it's my other dog wants a treat now sorry come on then the one for you come on you good job move other dog two dogs come up come on get up here well done good girl okay and what's happening here is you're learning through repetition right if you weren't already aware forgetting is a core component of learning because each time you forget something and then relearn it it goes into your brain a bit deeper and you learn it a bit more thoroughly and each time you relearn your brain makes new connections right it's with other things you learn come together it's like drawing the dots together to make understand more of the context of what you're trying to do and each time you relearn you're making it clear to your brain this topic matters this is worth stashing away in my long-term memory but if you set out trying to memorize everything from the start you're going to have a hard time instead don't worry about forgetting things it much more important is knowing where to look uh and rather than memorize specific swift code just think oh here's where i learned how to do tables here's where i learned buttons images so you know where to go and learn again if you need to and we forget something and you gotta relearn it i would think of that as being a good thing right that information will sink in deeper the second time the third time the tenth time you learn it so you're doing your brain a favor it'll be better that way the second most common problem i see folks hit is what i call shiny object syndrome they find a tutorial series that works well for them and they start making some progress but after a week or two they find some other series they want to follow and jump ship there instead i've had folks email me saying they've tried four five even six different tutorial series and are for some weird reason finally aren't learning anything the problem here usually is that large part of learning anything not just coding learning anything aren't exciting and that's not the fault of the teacher or the course necessarily it's just a fact of learning to code some things give you great results with hardly any work and other things take a lot more time to understand don't yield fancy results or just one part of a larger concept so when you hit these steep learning curves shiny object syndrome becomes powerful with so many free tutorials out there you can jump ship to any one of them and be back in the shallow part of the pool again the easier thing you've already learned about but unless the original course shows a particularly weird topic to cover you're gonna have to learn it eventually you're just kind of delaying the inevitable so i'm not asking you to always resist shiny object syndrome because i know it's hard instead at least be conscious of it when you hit a problem try asking someone for help and powering through the current course rather than switching speaking of asking someone else the third problem i see folks hit is when they go all lone wolf with their learning they have it in their mind they are fully capable of learning to build ios apps all by themselves and need no help from others this approach does work well for a very small number of people and they're usually the ones who have extensive experience with other languages or platforms but for the overwhelming majority of people trying to learn like this is a horrible experience every mistake or misunderstanding takes five times long to figure out it's extremely easy to lose motivation this way and you're missing out a whole lot of inspiration from seeing what others are doing if you are naturally into this lone wolf style of learning let me encourage you now to change share what you're learning find others who are learning get into the habit of asking questions to them and more not only will discover there's a fantastic community of learners out there who will surround you with support and encouragement motivation but you'll be inspired by their work and in turn inspire them with your work trust me i've seen this hundreds of times and it's utterly transformative the fourth problem folks hit when they're learning is they insist on using beta versions of apple's development tools i get it i get it every year apple adds a new ios a new mac os a new watch os and more all just new exciting things for us to try and it's totally natural for folks to want to have the latest greatest thing that's out there particularly they know that swift has a long history of changing however folks get into all sorts of problems when they try to learn using beta software tutorials probably haven't been updated yet for the beta software so you're following their instructions what always be possible or might not work correct because things have changed in the beta betas usually have bugs galore particularly so for ones for the major ios releases that happen around june time the early betas of ios 15 this year for example have bugs galore all over the place and also apple's beta frameworks take time to stabilize meaning that code that works great in beta 1 might not even exist in beta 3. so i know it's exciting to learn new stuff and i realize you might think you're getting ahead of the game with new features but trust me it is not worth it always stick to the latest public stable releases of apple's developer tools from the mac app store at least since you're feeling comfortable with them the fifth big problem i see folks hitler trying to learn is relying on apple's documentation now apple's developer publications team devpubs they work hard to document as much as they can from the company's vast range of frameworks but their job for the most part is to write reference material things you really are trying to use a particular piece of their tools rather than trying to create a structured course to help you learn to build ios apps with a smooth learning curve now i've lost track a number times folks told me how can i learn swift only to be answered by someone else in the community just read apple's swift reference guide and this approach again works for some people i know that because it worked for me i heard it cover the cover when swift was first announced however for most people it's a bit like trying to learn a human language by reading a dictionary it's designed to cover everything in swift in the whole language rather than teach you the most important parts and how to actually apply them and so if you have a extensive experience with other languages you might find reading apple's reference guides useful but if you're just starting out then maybe come back to them after a few months the sixth big problem folks hit is trying to learn objective c this is apple's primary development language before swift was introduced and although you'll find some remnants in the small projects the overwhelming majority of code out there is now swift and almost new code almost all new code is also swift now i spent years writing objective c before swift came along i i really grew to love it but it's got a shockingly steep learning curve if you thought swift is hard you ain't seen nothing yet and it also missed out most of swift's more advanced features and when i first tried out the iphone sdk on apple announced it a long time ago i was just horrified by objective c because it was entirely unlike everything i'd seen before for a learner objective c and swift have almost nothing in common yes they both have the same frameworks from apple mostly like uikit but unless you're actually planning to work at apple which is the only company in the world still producing large amounts of objective c then should leave objective c well alone and focus entirely on swift and the final major mistake i see folks hit when they're learning swift is to dump on other languages as if they were somehow inferior to swift the usual target is javascript but you'll see folks take shots at python java ruby go and more and for what it's not a competition folks those languages haven't got to lose enough for swift to win that's not how it works in fact swift and swift ui regularly and literally and publicly take inspiration from other languages and frameworks whenever a new language features are considered they look around how is it done in rust how is it done at python how is it in haskell and other languages and swift ui itself is hugely inspired by the react framework in javascript so i see folks saying in our community say why is javascript free or similar i just cringe nothing can be further than the truth and now for the part most folks will care about what are the actual resources i think you can use to learn swift as 50y and more to actually reach your goal of being an ios developer there are lots of them out there bluntly there's a huge amount out there and i really appreciate the fact that the community is so big have a broad range of perspectives from different people sharing their experience however here i'm specifically going to look at resources that are free places you can go and learn to build fantastic apps without paying a cent and there are two reasons for this first some folks believe that the more a swift course costs the better it must be so you end up paying eye-watering prices over 100 bucks or 200 bucks without getting enough benefit from that and second many sites like udemy rely on selling lots of low-priced courses confident if you don't like one course you just buy a different one they also got a business model uh similar to steams there are sales running all the time encouraging folks to build up a huge library of courses they'll study one day but never really get around to but it feels good buying them they'd like to learn something just by buying them and you haven't you could actually read the course and go through it and learn that way so i'm only going to list resources here that are free so i don't need to go into fall into one of those traps don't splash out 100 bucks or more on your first course don't buy a dozen cheap courses you think that makes you a developer it doesn't first up apple has two major resources that will help you the first is teaching code site which lists student and teacher resources for learning swift from the absolute basics up to professional certifications the curriculum is massive so it might take you a little bit of time to figure out the best entry point for you where you should go in at however once you're there you'll find lots of things to explore and second apple's got a whole series of swift ui tutorials that walk you through building real apps these do not teach you swift though that means you have to follow the swift focus curriculum first and then go on to swift ui stuff like i said earlier apple also makes a guide specifically for swift programming language there's a very good chance it will not work for you it's designed to be a reference rather than a structured tutorial so it's quite dense reading what apple's tutorials don't do is try and provide a structured way to learn that's where my own free tutorials come in i have hundreds of articles and videos about swift swift ui ui kit and more but there are two in particular i want to recommend to you the 100 days swift ui and the 100 days of swift so the 100 days of swift ui course takes you through learning the fundamentals of swift using articles videos and interactive tests then walks you through building over 20 real world apps using swift ui again all the articles and videos and tests to make sure what you're learning is sinking in each tutorial builds on what you already learned so a learning curve is nice and gradual as you guess from the title the whole thing lasts just 100 days a little over three months if you'd rather learn ui kit than swifty y that's where the original hundred days of swift comes in it's a similar idea but built using ui kit rather than swift ui for folks who prefer that path now there are also some fantastic youtube tutorials walking you through the fundamentals of swift ui including one from chris ching where he walks into building a slot machine game from scratch or one from mark moykins where he explains five swifty y concepts everyone should learn when they start programming there's one from me where i teach both swift and swift ui at the same time while also answering questions from a live audience now although they aren't quite so structured there are other sites that have high quality swift and swift ui tutorials including blackbirds ray wendlick donnie vals antoine van der ley and much more and i really encourage folks to visit a range of resources and find what works for them now if you prefer to learn using apps there are two i recommend both again completely free the first is apple's swift playgrounds app which lets you learn swift right on your ipad or your mac there are a lot of interactive lessons aimed at kids but there are some more advanced lessons that will help you push your skills further the other apps when i make myself it's called unwrap it works on all iphones and ipads lets you learn review and practice the fundamentals of swift using videos tests and more and it covers all the fundamentals of swift and it works great alongside the 100 days of swift ui curriculum finally at some point you have to learn to find answers online this might mean going to stack overflow but honestly i hope not because it's not a terribly pleasant place instead ask questions on the hacking of swift forums or your favorite slack group or the ios dev happy hour sessions or on twitter and more we are genuinely a very warm welcoming community with a lot of folks willing to help you reach your goals speaking of our community i want to turn to a really important topic that will help you meet folks in a similar position to you and help you learn more effectively and help you find a job opening too it's just a win-win-win all around the topic is this connecting to the ios development community this means learning where to look for news and interesting ideas where to go when you want to ask folks questions or share tips and helpful places you can go to meet folks let's start with easiest one first which is using twitter twitter is a really fantastic way to follow things that interest you in the case of ios development there are a handful of folks i would really recommend and these people tweet about their own work yes of course they do but the reason i think they're great to follow on twitter is because they also tweet a lot of other people's work too to help you see a range of perspectives on a particular topic and share all sorts of interesting ideas and things to try there are 10 folks i'd recommend following on twitter in no particular order first is sean allen now sean spent a lot of his time making youtube videos about swift and ios development but he also works super hard to spread the news about things other people have made he does a really good job of helping everyone discover something new every week second is antoine van der lay he runs a website just for ios development at avandelle.com but he also shares some great links to useful resources he finds on github newsletters and more third is naval khan now she works at apple that doesn't stop her ever from making regular videos about things she's working on what she's learning what she has trouble with and more she's really inspiring fourth is steve trout and smith now he's well known for his earlier work poking around in the back ends of ios but really should follow him for the fantastic range of links he shares to really impressive work i personally like the way he shares his own development progress on his own apps so you can see them grow from start to finish from almost nothing to shipping in the app store and number five is kaya thomas she's one of the most famous indie developers in our community i think she's been featured by apple more times than i can remember she tweets a lot about her own work and presentations but also shares links uh to books she's reading or books she's learning from or articles she's read and more which is really helpful number six is majidja brya love um he writes a fantastic blog about swift and swift ui but also a tireless promoter of others and if you follow him on twitter you'll get a idea after idea sent you away from a huge range of sources number seven donnie viles he writes a swift blog as well as more recently books on combined and core data but on twitter he also encourages folks to share what they're working on and even just reading that one thread every week will get you stuck with things to try so just definitely follow donnie number eight is summer pannage who works on apple helping folks make their apps more accessible so she's already restricted somewhat by what she can say but she does tweet out some first-class tips from herself and others that everyone can use to build better apps number nine natasha for diva she writes a blog about swift and ios development including articles on core data interview questions and more but she also tweets about things she's found elsewhere and finally there's me i tweet a lot about all the things i'm working on with swift swift ui and more but also try and share great articles videos and apps that others have made i think it's one of the most important things i do and everyone on this list does for the community now of course twitter is not the only place where you can keep up with the community there are newsletters there's slack groups there's zoom meetups forums conferences and more i don't want to bore you too much so i'm going to list one of each of those as a sample to get you going for newsletters you can't go wrong with ios dev weekly as i record this it just passed 500 issues one every week so that tells you immediately all you have to know about how important it is second up if you'd like to post in the web forum i host one myself at hackingyourself.com forums there are lots of categories to choose from and everyone is welcome to take part regardless of your experience level trust me you are more than welcome to post your beginner questions there with no judgmental responses third up every month ios dev happy hour takes place on a group zoom call with over 300 people i know it sounds busy but the real fun here is the breakout rooms we can chat with groups of six to eight people at a time it's a lot of fun and you will make friends there next up attending conferences it's been tricky thanks to the coronavirus pandemic but apple's dub dub dc was a huge hit last year and also has a wide variety of community events taking place alongside now a group of friends and i ran a github repository to help list all the other events and articles and more that happened so check out the link you can see on screen right here and finally if you want to chat on slack where you can get answers more quickly you can join the free hacking with swift slack group it's just hacking with swift.com slack then join one of the channels that interests you whether it's ios swift ui hundred days curriculums or more there's a channel for you now i want to move on to an important question a slightly bit more difficult question but one get asked a lot how long does it take to go from knowing nothing about swift to be able to get an entry-level ios developer position now obviously the immediate answer is it depends but i'd be a huge cop out here so i'm going to try and address it in a few different ways first what you cannot do is rush through several courses at the same time remember what i said about shiny object syndrome yeah that many people really think they can do two courses at the same time or three at the same time and then rush through three four five hours every day and still end up somehow with a high quality understanding of topics that were covered to be clear i have seen folks try that so many times and it fails every time every single time it never works and i see folks say tutorials were bad swift was too hard or literally any other reason than them trying to rush through something complex literally just today i received an email saying hi paul if i spend four or five hours a day learning swift how fast can i finish and that's just not how learning works not learning swift not learning to play the piano not learning to ice skate or whatever you wouldn't say if i play piano five hours a day will i be a professional pianist in three months no you won't that's not how it works learning swift is hard in places learning to build apps takes a lot of trial and error a lot of making mistakes a lot of wrong turns and that's all okay it's better than okay it's great each time you try something each time you make a mistake each time you make a a wrong turn you will learn something along the way and when you finally come to the solution you'll understand it in much more depth so the the tldr too long didn't read here is don't try and rush take your time don't be afraid to explore tangents in your code that come along don't be afraid to experiment with your projects don't be afraid to go back to something you learned previously and relearn it as needed second if you take into account what kind of background you have before you came to swift you see learning to build apps takes a wide variety of skills and if you're coming to the table with lots of existing knowledge such as version control data structures algorithms and more then you've got a real head start compared to folks becoming new to computing science in general alongside having fresh swift and other apple frameworks so we can kind of imagine a few different places you might be right now in your life if you've got a computing science degree you already have covered many core cs fundamentals to get moving with swift things like variables strings loops arrays sets functions op and more will all prove useful and swift as well as all your work with data structures and algorithms i think this is going to shave four to six months off your learning path depending on what subject you studied at school in that part of the degree or whatever but it'll also give you an advantage when applying for a job at many companies that require a cs degree second if you don't have a cs degree but did go to a coding bootcamp again you'll have many of the fundamentals you have to need to pursue it this will not give you the same advantage you're having a degree for some companies that require these things they have a a check on the list of arbitrary requirements missing but it'll still shave three or maybe four months off your learning path if you don't have a cs degree and did not attend a boot camp but you have been doing coding your spare time in any language again that will shave off time on your learning path probably two months or so depending on what language or frameworks you're using and what if you have no cs degree no boot camp and no prior coding experience then i'd say you're looking at sort of 9 to 12 months going from nothing to an entry-level job and yes that is potentially a full year working alongside whatever is your full-time job that's just your first job as an ios developer is it always a year no of course it's not like i said you can shave one to six months off that depending on your prior experience if you can't take the best numbers on both sides like nine months from nothing to a job plus having six months or having a cs degree that potentially means you could be higher than just three months which is remarkable quite frankly now you might think no that's not possible you cannot get your first job in three months it is entirely possible i have met someone in person who is following my hundred days of swift course who has offered a job before they even reached day 50. they'd already learned enough about app development and swift and new ikea at the time to get going and get a job because they put the work in to make every day count so you do not need a cs degree you haven't got to go to a boot camp but you do have to be prepared to work hard the third thing i want to address before we move on is to say it's going to take as long as it takes right john lennon has a fantastic lyric that i love which is life is what happens when you're busy making other plans and it is fantastic i love it when i see folks have grand plans for learning and big aspirations for the dream job they want to have but sometimes you're tired sometimes you're stressed out sometimes your roof starts leaking your dog gets sick or you've got to help your kid with the homework more than usual or whatever and that's just life life happens so don't beat yourself up if you fall behind this amazing learning schedule that you have or you find yourself missing a few days even a few weeks and so on as long as you are resilient is that determination and willpower thing again you will get there so if you work super hard and get a job after 50 days of one of my courses fantastic well done if you see 500 days that's also fantastic you should be just as proud heck if it takes me five years like i know it's not you we wanted but the end result is the same i still have like another 40 years to work as a developer that's what matters so last but not least if you're a little further into your ios learning path and you're starting to think about getting that first entry level job i want to point you to a massive collection of resources i assembled to help you all free on my site you can go to careers then start here or just visit hackingwithswift.com career-guide directly there you'll find epic collection of resources that will help you no matter where you are all of which are completely free including interactive skill reviews to test your knowledge of core topics coding tests are used around the world in real job interviews over 200 commonly used interview questions or suggestions for ways you can answer them plus articles on how to find jobs how to do your best interviews and more just go to the url and you'll find links to all that and more in one place i also want to point you towards sean allen's collection of videos full of swift interview tips he's got a whole place for them i'll link in the description below where you can work through uh discussions such as classes versus structs or functional programming or error handling and more none of the videos are long but each one's aimed at giving you just the skills you need to perform well on that topic in an interview scenario okay so i've gone through the core and extension skills you'll want to learn i've also gone through common mistakes folks make one learning what courses you can follow how to connect to the ios community and how to prepare for your ios job interview there's a huge amount to get through and i hope it's been useful what's more i hope i've shown you how much is out there that's completely free and again yes i know the temptation is super strong to splash out 100 bucks or more for a course please relax get moving first find some momentum first and also find someone who teaches swift in a way that works for you and then when you're in a good place and you feel ready fine go ahead and spend money if you want to and if you enjoyed this video subscribe to my channel i make lots more videos like this one teaching you swift swift ui ui kit and more all completely free and if you have ideas for things you consider essential skills or core skills or more comment below let folks know i'd love to hear them you
Info
Channel: Paul Hudson
Views: 59,969
Rating: 4.9530044 out of 5
Keywords: swift, iOS, swiftui, ui, macOS, tvOS, watchOS, Xcode, twitter, interview, tips, career, guide, core data, UIKit, playgrounds, learn, tutorial, skills
Id: HNXzcAwNqMc
Channel Id: undefined
Length: 53min 32sec (3212 seconds)
Published: Wed Mar 31 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.