05/08/2021
Day 92 Last day๐ฅฐ
Hey there! Today is my last day of training at NomadStyle. My "100 days" of coding ended a little earlier and today I am preparing for a job interview and going into the independent life of a junior developer.๐ฅณ๐
Let's sum up:
1. 100 days of coding does not mean that in 100 days you will learn to program. I started my journey in December 2021, and I had about 100 lessons and more than half a year of practice to start understanding programming.
2. Is coaching necessary, or can you handle it yourself? The modern world is full of all sorts of information in the public domain, but I wasn't always able to find answers/solutions to my questions. My coach provided a personalized approach based on my needs๐
3. It won't be easy. But you need to remember that your future is the best motivation.
4. Share your experiences with other students or developers, it's really helpful.
5. Practice-practice-practice!
I continue to study and will wait for a reply from the companies where I sent my resume.
Thank you for being with me along my journey and thank you for your support!
Hug you all!๐ฅฐ๐ฅฐ๐ฅฐ
03/08/2021
Day 91 ๐๐จ๐ฐ ๐ญ๐จ ๐ ๐๐ญ ๐ซ๐๐๐๐ฒ ๐๐จ๐ซ ๐ ๐ฃ๐จ๐ ๐ข๐ง๐ญ๐๐ซ๐ฏ๐ข๐๐ฐ
Hello! Today I had a very interesting lesson with my coach. He told me about the interview process, what questions they ask, what type of technical assignments they can give, and how to prepare in general.
Usually, communication with a technician begins with checking your theoretical knowledge. Typically asked questions such as "What is UIStackView?" or "What is the lazy property?".
In the practical part, you will be asked to solve simple (or complex๐ฝ) problems in real-time. A technician needs to understand your logical thinking and project skills.
๐๐จ๐ฐ ๐ญ๐จ ๐ฉ๐ซ๐๐ฉ๐๐ซ๐ ๐๐จ๐ซ ๐ญ๐ก๐ ๐ฉ๐ซ๐๐๐ญ๐ข๐๐๐ฅ ๐ฉ๐๐ซ๐ญ ๐๐ง๐ ๐ง๐จ๐ญ ๐๐๐ข๐ฅ ๐๐ญ ๐ญ๐ก๐ ๐ข๐ง๐ญ๐๐ซ๐ฏ๐ข๐๐ฐ? There are platforms to help you improve your skills, expand your knowledge, and prepare for technical interviews.
Here are some of them:
๐๐ซ๐จ๐ฃ๐๐๐ญ ๐๐ฎ๐ฅ๐๐ซ is a platform dedicated to a series of computational problems intended to be solved with computer programs
๐๐จ๐๐ข๐ฅ๐ข๐ญ๐ฒ is the technical recruitment platform for teams to test the coding skills of developers and make evidence-based hiring decisions.
๐๐๐๐ญ๐๐จ๐๐ is an excellent tool for honing your programming skills in preparation for your big tech interviews
๐๐ฅ๐ ๐จ๐๐ฑ๐ฉ๐๐ซ๐ญ is an interview preparation platform for software engineers. It's specifically geared towards those who want to work at a FAANG-level.
(FAANG is an acronym referring to the stocks of the five most popular and best-performing American technology companies: Facebook, Amazon, Apple, Netflix, and Google)
Good luck! ๐
02/08/2021
Day 88-90
Hello! I am now intensively preparing for a working interview, indulging in all the materials that I have already studied.
And I want to tell you that I have already completed a program from Apple called "Develop in Swift, Fundamentals" (freely available). The program is designed for approximately 180 hours. This includes from the very-very base of the Swift language to the development of an application prototype, but to be honest, the material seemed to me very succinct. It was easy enough for me to study this material only because I had a coach who has been working in this field for over 10 years. I could ask all the questions I was interested in during our sessions (this helped me a lot to understand the principle of work in general).
Itโs hard to believe that my training is coming to an end.๐
What materials did you use to start learning to program?
23/07/2021
Day 85-87. ๐๐จ๐๐๐ฅ-๐ฏ๐ข๐๐ฐ-๐๐จ๐ง๐ญ๐ซ๐จ๐ฅ๐ฅ๐๐ซ
Hi everyone! (Spoiler alert๐พ: this post will be long, but interesting)
These days I have been learning about one thing that juniors are often asked about in job interviews. ๐โโ๏ธThe Model-View-Controller (MVC) design pattern.
This is a way of organizing your code, which involves highlighting blocks that are responsible for solving different problems. One block is responsible for data, another is responsible for the interface, and the third acts as the messenger between views and model objects.
MVC components:
๐๐จ๐๐๐ฅ is responsible for data and also defines the structure of the application. For example, if you are creating a Shopping List application, the model component code will define the list of products.
๐๐ข๐๐ฐ is responsible for user interaction. The view component code defines the appearance of the application and how to use it.
๐๐จ๐ง๐ญ๐ซ๐จ๐ฅ๐ฅ๐๐ซ is responsible for communication between model and view. The controller component code defines how the application responds to user actions. Basically, it is the brain of an MVC application.
๐๐๐ ๐ข๐ฌ ๐ ๐ญ๐จ๐จ๐ฅ ๐ญ๐จ ๐ก๐๐ฅ๐ฉ ๐ฒ๐จ๐ฎ ๐ฐ๐ซ๐ข๐ญ๐ ๐๐ฅ๐๐๐ง, ๐ฆ๐๐ข๐ง๐ญ๐๐ข๐ง๐๐๐ฅ๐, ๐๐ง๐ ๐จ๐ซ๐ ๐๐ง๐ข๐ณ๐๐ ๐๐จ๐๐.
Using the MVC pattern also allows you to follow the
๐๐๐ (๐๐จ๐งโ๐ญ ๐ซ๐๐ฉ๐๐๐ญ ๐ฒ๐จ๐ฎ๐ซ๐ฌ๐๐ฅ๐) ๐ฉ๐ซ๐ข๐ง๐๐ข๐ฉ๐ฅ๐. If the code is not duplicated, then it is enough to make corrections in just one place to change the logic. Testing is also simplified, because it is much easier to test one function (okay, maybe more complex one๐โโ๏ธ) than 20 of the same type.
19/07/2021
Day 84. App life cycle
Hey there! I've already learned about different stages of the view controller life cycle. The life cycle of an app is almost the same way.
๐๐ก๐ ๐๐ข๐๐๐๐ซ๐๐ง๐ญ ๐ฌ๐ญ๐๐ ๐๐ฌ ๐จ๐ ๐ญ๐ก๐ ๐๐ฉ๐ฉ ๐ฅ๐ข๐๐ ๐๐ฒ๐๐ฅ๐:
Not running๐ด: The app hasnโt been launched or has been terminated.
Inactive๐ก: The app is running in the foreground but isnโt receiving touch events.
Active๐ข: The app is running in the foreground and receiving events.
Background๐ : The app is executing code but is not visible onscreen. When the user quits an app, the system moves the app to the background state briefly before suspending it.
Suspended๐ด: The app is in memory but isnโt executing code.
We need to know the lifecycle of the app to execute code on time. For example, when the app launches, we could trigger a network call to fetch new data. When the app closes, we can save the user's progress.
Now I need to figure out how delegates work.๐ฌ
13/07/2021
Day 80-83 News. Protocols
Hey! While I am emailing my resume, I decided to refresh my knowledge and repeat everything that I have already learned (to not fail at the interviewโ ๏ธ).
Today I continued to study the protocols.
The Swift standard library defines many protocols that are used when building apps. I learned about 4 basic protocols (actually 3 because I already know about Codable๐).
๐๐ฎ๐ฌ๐ญ๐จ๐ฆ๐๐ญ๐ซ๐ข๐ง๐ ๐๐จ๐ง๐ฏ๐๐ซ๐ญ๐ข๐๐ฅ๐ allows us to control how our custom objects are printed to the console ( this looks really nice๐)
๐๐ช๐ฎ๐๐ญ๐๐๐ฅ๐ allows us to define how instances of the same type are equal to each other.
๐๐จ๐ฆ๐ฉ๐๐ซ๐๐๐ฅ๐ allows us to define how instances of the same type are sorted.
๐๐จ๐๐๐๐ฅ๐ allows us to encode our type's properties as key/value pairs that can then be saved between app launches.
Keep in mind that when we adopt a protocol in Swift, we promise to implement all the methods required by that protocol. The compiler will check that everything is in order and won't build the program if something is missing๐
โโ๏ธ.
08/07/2021
Day 78-79.
Hey there! I am looking for an internship to start my development career๐พ
These days I was creating a developer's resume and researching the job market.
To be honest, creating a resume is not as easy as I had expected!
It was difficult for me to articulate my knowledge and achievements๐คฏ. And I got a little panic when I compared my resume and job requirements for the Junior Developer position.๐
๐๐๐จ๐ฎ๐ฅ๐ ๐ฒ๐จ๐ฎ ๐ญ๐๐ฅ๐ฅ ๐ฆ๐ ๐๐๐จ๐ฎ๐ญ ๐ฒ๐จ๐ฎ๐ซ ๐๐ฑ๐ฉ๐๐ซ๐ข๐๐ง๐๐? ๐๐ก๐๐ญ ๐ฌ๐ก๐จ๐ฎ๐ฅ๐ ๐ ๐ง๐๐ฐ๐๐ข๐ ๐๐จ๐ง๐ฌ๐ข๐๐๐ซ ๐ฐ๐ก๐๐ง ๐๐ซ๐๐๐ญ๐ข๐ง๐ ๐ ๐ซ๐๐ฌ๐ฎ๐ฆ๐? ๐๐จ๐ฐ ๐๐ข๐ ๐ฒ๐จ๐ฎ๐ซ ๐๐ข๐ซ๐ฌ๐ญ ๐ข๐ง๐ญ๐๐ซ๐ฏ๐ข๐๐ฐ๐ฌ ๐ ๐จ?
๐ฅฐ
06/07/2021
Day 77. Sad day
Hi there! My Monday started with bad news๐งโโ๏ธ
As I told you before, I use a service that allows me to work on a Mac in a cloud since my computer doesn't support the latest versions of the Xcode. And you know what? I forgot ๐คฆโโ๏ธ to pay the bill and the administrators disabled my account with all my works that were stored there.
Fortunately, the losses are small - just a few of the last laboratory work that I did not commit to the GitHub. All big projects are safe and sound ๐ฅณ
Use GitHub and don't forget to commit the latest changes๐
And I'll go and set up reminders of important things for the year ahead๐.
04/07/2021
Day 74-76. Personality quiz
Hello everyone! Probably each of us at least once played a quiz on Facebook like "What kind of bread are you?" ๐
This days i worked on guided Project by Apple โ Personality Quiz in order to consolidate my knowledge of UIKit. In this project I gained more practical knowledge of working with,optional data in Swift, navigation hierarchies and creating simple workflows using tabs and navigation stacks.It was really interesting and informative ๐.
If you had to create a quiz, what would it be?
โ
29/06/2021
Day 74. ๐๐ฎ๐ฆ๐๐ง ๐๐ง๐ญ๐๐ซ๐๐๐๐ ๐๐ฎ๐ข๐๐ฅ๐ข๐ง๐๐ฌ
At least a thousand new applications appear in the App Store every day. However, over 75% of them are downloaded, opened once and never used again. Most often due to poor usability.
People don't want to learn a new mobile interface every time they open an app. They need simple products, the interface should be familiar and all the steps should be logical.
Even such a small element as an icon matters. If the icon image is unknown to the user - this reduces the efficiency of the application. Users should immediately recognize the elements, and not try to understand what they are.
To help developers and designers make better and more user-friendly interfaces, Apple has released iOS Human Interface Guidlines (HIG). This is a set of recommendations and tips to help developers create the best product.
HIG describe visual design rules, including the design and style of icons and much more.
26/06/2021
Day 73. ๐๐ข๐๐ฐ ๐๐จ๐ง๐ญ๐ซ๐จ๐ฅ๐ฅ๐๐ซ ๐๐ข๐๐ ๐๐ฒ๐๐ฅ๐
Hi there! ๐ฅฐ
View controller life cycle is a sequence of steps that begins with its creation. The creation of the View Controller comes with a storyboard or from the code. The loop begins from the moment the application starts and the first View Controller appears on the screen. The second step is initialization. We need a View Controller to set all objects. Initialization methods help to prepare it for appearance and probably disappearance on the screen.
View Controller initialization methods:
โช๏ธ๐๐ข๐๐ฐ๐๐ข๐๐๐จ๐๐
After youโve instantiated a view controller, whether from a storyboard or programmatically, the view controller will load the view into memory. This process creates the views that the controller will manage. The method is called only once during the VC life cycle.
โช๏ธ๐๐ข๐๐ฐ๐๐ข๐ฅ๐ฅ๐๐ฉ๐ฉ๐๐๐ซ
The method updates the View every time we enter the View Controller. It lets you know what changed in the View when we were outside of it.
โช๏ธ๐๐ข๐๐ฐ๐๐ข๐๐๐ฉ๐ฉ๐๐๐ซ
The method is called at the moment when the View has already appeared on the screen. We use it for animation, starting a timer, monitoring GPS, etc.
โช๏ธ๐๐ข๐๐ฐ๐๐ข๐ฅ๐ฅ๐๐ข๐ฌ๐๐ฉ๐ฉ๐๐๐ซ
The method is called before VC leaves the screen. Used to undo what was done in the ViewDidAppear. For example, stop timer ex*****on, interrupt animation, stop GPS observation.
โช๏ธ๐๐ข๐๐ฐ๐๐ข๐๐๐ข๐ฌ๐๐ฉ๐ฉ๐๐๐ซ
The method is called after VC has completely exited the screen. It is rarely used.
๐โโ๏ธ
Wish you all a great weekend!๐
22/06/2021
Day 71-72.๐๐. ๐๐๐ ๐๐๐ซ ๐๐จ๐ง๐ญ๐ซ๐จ๐ฅ๐ฅ๐๐ซ๐ฌ
Hi there! ๐ฅฐ
A tab bar controller allows you to arrange your app according to distinct modes or sections. For example, the Clock app is divided into five modes: World Clock, Alarm, Bedtime, Stopwatch, and Timer.
A tab bar interface features a tab bar view, which runs along the bottom of the appโs screen. Each tab can contain its own independent navigation hierarchy, with the tab bar controller coordinating the navigation between the different view hierarchies.
๐๐ก๐ข๐ฌ ๐๐๐ฒ๐ฌ ๐ข ๐ฅ๐๐๐ซ๐ง๐๐:
โซ๏ธHow to appropriately use a tab bar controller
โซ๏ธHow to add a tab bar controller
โซ๏ธHow to add view controllers to the tab bar controller
โซ๏ธHow to customize tab bar items
It seemed to me that switching between view controllers in this way is super convenient. But I'm not sure that in this case the view controllers can interact with each other๐ง
Do you use tab bar controllers? What do you think about it?