How do you know that you're a senior iOS developer? Or when do you become a senior iOS
developer? What does it take to become a senior iOS developer anyway and most importantly what
is the roadmap you have to follow to become from a junior a senior iOS developer. There's
a lot of wordless information out there about this topic that might hurt you, so let's talk
about it. Let's talk about how to become a senior iOS developer. This topic is really controversial.
What is a junior, what is a senior developer? What are the traits and most importantly
where do you categorize yourself. I don't want to go into this part of the discussion because
that is kind of really lame. I don't really like to categorize people and most importantly I don't
think that a junior, mid-level or senior developer categorization is a good fit for us developers.
So I want to really avoid that. I'm going to come up with some other ways of categorizing
and most probably you will like it and you will have much better peace of mind. So anyway
we as developers tend to talk about junior or senior devs according to their tasks and
I'm going to talk about these things that we talk about because then I'm going to transition.
So junior tasks. Write some code, does know some language, they just fix bugs and usually
they need to be taken care of senior developers. While senior developers are critical thinking.
They work or work in teams or lead some teams. They do testing they do documentation, mentoring, helping
junior developers. They do quite a lot, They are the gods of developers and as you already know there
might be some juniors that do write some testing or documentation there might be some seniors that
don't really care about documentation or testing or they don't really do a good job at helping
junior developers. So this is kind of a foggy area. As I have told you junior developers
and senior developers or mid-level developers these are really the wrong way of
touching this topic of how good is a developer actually and usually on an interview people don't
really take a good look at okay this is what your status was at your previous job, junior or senior
whatever. They try to figure out how good are you. Therefore you must show them what skill sets you
have. So junior or senior developers these are just titles. They are just positioned. So in order
to become a good developer you have to become an expert at things. So this is kind of the key word
here expert. What are you expert at? What are your traits? What is your level at certain
thoughts and because you know we are going to work in corporations these tasks are assigned to either
to be a junior developer position or a senior developer position, but you could be well off
you could be an expert let's say at a junior task, let's say putting up some UI. Also you can be an
expert at mentoring or helping junior developers which is a senior trade. So I would say that you
should just think about what does it require, what task does it require to become a senior iOS
developer and what is your level of expertise on that is it a beginner or are you an expert at it.
So how do you become an expert? This is how you can become a senior iOS developer so you can appeal
to that company so you get that title, you get that position. So how do you become an expert? That is
the main question right over here. At its core expertise is all about recognition. Now it's not
about me recognizing that you are an expert, it's about recognizing patterns. So what you want to do
is learn the patterns of your particular task. If you are an UI developer then, so if you want to
put out UI, you want to become an expert on setting up UI you want to do it as much
as possible so you can recognize the patterns. You want to be an expert at recognizing those patterns.
Expert doesn't mean that you have a good memory at memorizing all of the let's say SwiftUI views or
how to set them up. You want to be an expert of okay this is how I set things up if I want
to achieve this kind of UI or this is really bad because at the end this will bite me in the
you know what and that is what it's called recognition. You want to recognize patterns
in that specific task. Be it a UI, be it mentoring, you know you if you want to become a good mentor for a
junior developer let's say that is the task then you want to own your social skills. You have to
have these patterns. You want to recognize that okay this junior developer is struggling with
this and that and then this is how I can help it, this is what I experienced that it helped
other junior developers also. So if that recognition is the baseline of becoming an expert
then how can you become an expert? How can you make yourself an expert and yeah these are just
3 steps, it's not easy and it will take time but bear with me this the steps. So I will just
read them out loud and then I will talk about them. So step number 1. You want to have many repeated
attempts. So many repeated attempts. Step number 2. Patterned and immediate feedback. Step number 3.
Thousands of hours of deliberate practice, okay. Repeated attempts, pattern and immediate feedback,
thousands of hours of deliberate practice. Now let's take them one at a time because
it's really important for you to understand how you can actually become an expert as anything and
if you become an expert at a senior task. That is okay, this company says that if you are a senior,
so if you want to become a senior this is the task or these are the tasks that you want to
become an expert. In these are the steps that you want to follow. So step number one many repeated
attempts. As you all know about Malcolm Gladwell's ten thousand hours of work, so you want to put
in ten thousand hours. Not just that. You want to have many repeated attempts. So you want to
keep on, so repetition is the mother of learning. So you want to keep on repeating over and over
what you actually want to become an expert in. But that doesn't really mean that you will become an
expert at it. You still have to become, you have to be in an environment that will give you feedback
that is patterned and immediate. Let me just talk about these two. So what
does it mean that you have to become be inside an environment that is for example
pattern? Well you want to learn stuff that you can recognize the patterns of. For example again
coming back to the UI, you want to see if you can recognize patterns for specific UIs for a
scroll view or the cells or for the tabs or the navigation. And once you get accustomed to that
through repeated attempts of building that then you kind of start seeing these patterns emerge.
And that is what you want to become good at. You want to see the patterns. Where things go
wrong. How should it be build out and most importantly you want to test this out.
So you want to build and run. So you get that immediate feedback. Let's say you lay out the UI.
You hit build and run and then you see okay this is how it looks like. I don't really like it.
Make some changes build and run again, oh this is how I want it to become.
So make sure that the feedback is patterned, so you can recognize those patterns and it is immediate.
So you don't have to wait let's say a week for your actions to have some feedback. Now the
third one is kind of the complementary of all of these two. So you want to have thousands of hours
put in but the most important part here is what type of hours, what is the quality of those hours.
So let's say you are driving. You are learning to drive and then the first time oh it's really,
really hard. Let's say you have a new car you have it's really, really hard you are paying attention
to everything you have this focus and it's really quite hard. So after a few hours of driving you get
accustomed to this. So afterwards if you drive 50 - 100 more hours you will not learn much more,
therefore you don't have to be lazy. You want to make sure that you are not comfortable,
you want to make sure that you are kind of always stepping out of your comfort zone. So all of these
thousand hours that everybody is talking about you want to make sure after you repeat you have your
repeated attempts in a pattern and intermediate feedback environment. You want to make sure
that you are stepping out of your comfort zone. You have this kind of deliberate practice
and yeah this is what coaches or mentorings are really good for because coaches and mentors they
really kind of see because yeah they are at the next level they see where your weak points are and
they point you so you can practice there. That's deliberate practice. You practice at your edge of
your abilities. Those things that you don't really know and yeah if you practice those thousands of
hours at that area and of course that area will always move because you are going to be much
more efficient at the area that you have already learned. Then you will become an expert and again
mentors are really great. Go ahead and check out my mentoring sessions. I do give them at REBELOPER.COM/MENTORING
where you can meet me at a one hour Zoom meeting and of course I will glad you guide you
to your kind of weaknesses where you should do those thousands of hours of deliberate
practice. Now if you did like this video go ahead and check out
my previous one about publish variables in Swift UI4. It's right over here.