IOS programmer - course 57,780 rub. from GeekBrains, training 6 months, Date: June 10, 2023.
Miscellaneous / / December 05, 2023
Basics of programming
Basics of programming
The course is aimed at people with no programming experience. To start learning, it is enough to have computer skills at the level of the most ordinary user. All training will take place in the browser and you will not need to install additional software. You will learn what a program is, how it is executed, and get acquainted with the basic operations in programming. We will talk about basic data types, arrays, branching, loops and functions in accessible language. You will gain experience in solving simple but interesting problems, which will give you the basis for learning to solve much more serious problems.
Lesson 1. Program, variables and data types
After the lesson, you will have an idea of what a program is, that it consists of instructions and data, you will learn scalar data types in JS, you can write a program that multiplies two numbers entered by the user and prints result.
Lesson 2. Flowcharts and branches
After the lesson, you will have an idea of how to visualize algorithms using flowcharts, understand the work of comparison operators, understand how to use branching and what problems it solves
Lesson 3. Cycles
After this lesson, you will have an understanding of how to visualize cyclic algorithms using flowcharts, how to use loops, and what problems they solve.
Lesson 4. Functions
After the lesson, you will have an idea of what problems are solved by putting code into functions, and be able to create functions, including those that take arguments.
Lesson 5. Arrays
After the lesson, you will have an idea of what problem arrays solve, be able to create arrays, add and receive its elements.
Swift Language Basics. 1 month.
Modern programming technologies for Apple on Swift 5.2, Xcode 11
Swift is a new language from Apple that appeared in mid-2014. Despite its novelty, it is developing rapidly and includes all the best programming constructs borrowed from many modern languages. There are only a few specialists who know Swift on the market right now. This course will help you learn the syntax fundamentals of Swift and gain good programming experience in the language.
Lesson 1. Introduction to Programming
Introductory lesson. Getting to know the language. Basic data types. Xcode, Playground. Variables, constants and data collections. Debugger.
Lesson 2. Swift Syntax and Basic Operators
Continued study of language syntactic structures and basic operators
Lesson 3. Complex Data Types
Introduction to complex data. Structures. Transfers. Properties and methods. Constructor.
Lesson 4. Introduction to OOP - Object Oriented Programming
How to describe objects of the real world and create them according to the description. Classes and objects. Inheritance. ARC and an introduction to memory management.
Lesson 5. OOP: class requirements, protocols, extensions, polymorphism, composition
We describe the requirements for classes. Protocols. Extensions. Polymorphism. Composition.
Lesson 6. Advanced OOP
Techniques from real gurus. Generics. Closures Subscripting. Higher order functions.
Lesson 7. Application error management
We learn to look for errors and predict their occurrence. Try/catch exceptions. Error.
Lesson 8. Consultation with a teacher
Git. Basic course
Git Basics
13 videos will teach you the basics of working with the Git version control system. You'll learn why it's important in modern development. Learn the basic concepts: repository, commits, branches and tags. Master key operations: creating and cloning a repository, merging branches, querying change history, and much more. After training, you'll be ready to use Git to prepare homework assignments for programming courses in any language. Plus, you'll get closer to the interview, where several questions usually focus on version control.
Lesson 1. Introduction to Git
Lesson 2. Installing and Configuring Git
Lesson 3. Basic terminal commands
Lesson 4. Working with repositories in Git
Lesson 5. Repository File Management
Lesson 6. History of changes
Lesson 7. Working with repository branches
Lesson 8. Publishing a repository
Lesson 9. Branch merges
Lesson 10. Version management
Lesson 11. Creating a pull request
Lesson 12. Complex operations
Lesson 13. Working with Fork repositories
Database Basics. 20 lessons.
Database Design and SQL Queries
Databases (DBs) are data storage and processing systems that are accessed using the SQL (Structured Query Language) language. Any modern website, game or desktop application needs data storage. At the moment, there are many different database management systems (DBMS), the most popular being MySQL. “Database Basics” is 20 intensive video lessons (10 minutes each), where we will go through all the stages of database design using the example of an online store using the SQL query language. After this course, you will be able to use various databases, such as MS SQL and Postgre Sql, since the SQL syntax for them is practically the same.
Lesson 1. Relational Databases
What is the difference between a database and a DBMS; what databases are called relational; overview of modern DBMS.
Lesson 2. Installing the DBMS
Installation of the MySql DBMS and the Mysql Workbench graphical application.
Lesson 3. Database design, normal forms
Data design in Excel; normal forms; primary key.
Lesson 4. SQL command CREATE
Creating tables in the MySql Workbench GUI; CREATE command; data types; work in the console.
Lesson 5. SQL INSERT command
Filling tables with data using a graphical interface; INSERT command; AUTO INCREMENT.
Lesson 6. SQL SELECT and WHERE Commands
Receiving and filtering data using SQL SELECT and WHERE commands; checking for NULL; filtering data by several conditions.
Lesson 7. SQL commands DISTINCT, ORDER BY, LIMIT
Receiving and filtering data using SQL commands DISTINCT and LIMIT; sorting using the ORDER BY command.
Lesson 8. SQL commands DELETE and UPDATE
Updating and deleting data using SQL commands DELETE and UPDATE; filtering data using WHERE IN.
Lesson 9. Data Consistency
The concept of consistency or consistency of data.
Lesson 10. External key
The concept of a foreign key and restrictions on column values; FOREIGN KEY CONSTRAINTS.
Lesson 11. Creating tables with a many-to-many relationship
Adding a cart to the online store database.
Lesson 12. Composite primary key
Using a composite primary key when designing a table with a many-to-many relationship.
Lesson 13. Merging data from multiple tables
Retrieving data from several interrelated tables; inconsistency of the approach using several SELECTs.
Lesson 14. INNER JOIN operator
Joining data from multiple tables using the INNER JOIN operator.
Lesson 15. Operators LEFT JOIN, RIGHT JOIN
Joining data from multiple tables using LEFT JOIN and RIGHT JOIN operators.
Lesson 16. UNION operator
Combining the results of multiple SQL queries using the UNION operator.
Lesson 17. Aggregation functions
Aggregating functions COUNT, SUM, MIN, MAX.
Lesson 18. GROUP BY operator
Group a selected set of rows using the GROUP BY clause.
Lesson 19. Indexes
Filtering in GROUP BY using HAVING; increasing the speed of query execution using indexes.
Lesson 20. Transactions
Transaction concept; TRANSACTION statement; ACID requirements for the transaction system.
User interface of iOS applications. 1 month.
Swift 5.2 Xcode 12
What are the main features of most modern mobile applications? Interaction with the service. Display and change data on an external server! There are no applications without a user interface. This is the face of your project. It can be used to attract and retain users. By implementing a connection with the service, you can organize the interaction of users with each other or with your business.
Lesson 1. Interface design, part 1. Analysis of basic network capabilities and their application in practice
Analysis of the main network capabilities and their application in practice.
Lesson 2. Interface design, part 2. Adding screens. Transitions between screens. UINavigationController. Segue
Adding screens. Transitions between screens. UInavigationController. Segue.
Lesson 3. Interface design, part 3. We display the data in the form of a table. UITableViewController, UITableViewCell, UICollectionViewController, UICollectionViewCell
We display the data in the form of a table. UITableViewController, UITableViewCell, UICollectionViewController.
Lesson 4. Creating custom UI components
Drawing with CoreGraphics. @IBDesignable and @IBInspectable. CALayer: shadows, borders, mask, gradient. Transformation. Processing user gestures. UIControl. UIAppearance.
Lesson 5. Consultation with teacher 1
Lesson 6. Customization of collections
Creating custom table cells, header and footer views. Creating custom collection cells, supplementary views. Working with UICollectionViewFlowLayout. Creating a custom collection view layout.
Lesson 7. Animations, part 1. Simple UIView animations. Animate transitions between UIViews. Layer animations. Spring Animations
Simple UIView animations. Animate transitions between UIViews. Layer animations. Spring animations.
Lesson 8. Animations, part 2. Animation groups. Bezier curves and their animation. 3D animations. UIViewPropertyAnimator
Keyframe animations. Animation groups. Bezier curves and their animation. 3D animations. UIViewPropertyAnimator.
Lesson 9. Animation of transitions between screens
Animate transitions between UIViewController. Interactive transitions between view controllers. Creating your own segue.
Lesson 10. Consultation with teacher 2
Client-server iOS applications. 1 month.
Swift 5.2, Xcode 12
You will master techniques for developing high-load applications. You will work with files and archives. Learn to manage processes in the background, optimize the application for loading large amounts of data. You will also learn methods for developing applications with a universal interface. Get experience with Google's popular Firebase Backend service. You will also participate in the process of publishing the application in the AppStore.
Lesson 1. Using the Observer, Singleton and Delegate Patterns
We study the implementation of the most popular patterns in iOS. Let's get acquainted with NotificationCenter.
Lesson 2. Networking
Learning to work with network requests. Anatomy of HTTP requests. Overview of tools and libraries for working with network requests. Sending requests using URLSession.
Lesson 3. Mapping json
Let's convert the server's json response into application objects. Anatomy of the json format. JSONSerialization.
Lesson 4. Data storage
An overview of tools and libraries for persistent storage of data in an application. UserDefaults, Files. CoreData. SQLite, Realm, Keychain.
Lesson 5. Consultation with teacher 1
Lesson 6. Realm - object database management system
Detailed review of Realm. Saving, retrieving, deleting, filtering data
Lesson 7. Notifications in Realm
Monitoring changes in Realm. Automatic UI update.
Lesson 8. Firebase backend
We use an external server to store application data. Mastering the Firebase Framework. We connect the “Registration” and “User Authorization” mechanisms.
Lesson 9. Mechanics of the App Store
We publish the application in the App Store. We are exploring the possibilities of monetizing mobile applications.
Lesson 10. Consultation with teacher 2
Performance of iOS applications. 1 month.
Swift 5.2 Xcode 12
The course will cover the concepts and technologies of multithreading, caching, and troubleshooting problems related to user interface performance.
Lesson 1. Parallel programming. Thread.
Introduction to the concepts of multi-threaded and asynchronous code. Flow management. RunLoop. Thread.
Lesson 2. Parallel programming. GCD
We study the Grand Central Dispatch library and simplify flow management.
Lesson 3. Parallel programming. NSOperation
Introduction to the NSOperation library for organizing multi-threaded code and parallel execution of tasks.
Lesson 4. Consultation
Lesson 5. Asynchronous code. Futures and Promises Concepts
Introduction Promise/Future concept A bit of theory Practice
Lesson 6. Practices working with UITableView and UICollectionView
We are looking for problems in the operation of tables and collections. We abandon AutoLayout in favor of layout on frames. We process data in a parallel thread and cache images.
Lesson 7. News Feed Patterns
Pull-to-refresh pattern. Infinite scrolling pattern. Calculate cell size for future uploaded images.
Lesson 8. Consultation
Algorithms and data structures. Basic course.. 1 month.
Efficient solutions to computing problems
The fundamental course “pumps up” basic knowledge of computer science. Gives an understanding of how the programming language works and the commands and solutions used in the code. Using the C language as an example, students will be able to “feel” the mechanisms that underlie modern frameworks. The course provides knowledge that distinguishes a programmer from a “user” who writes code.
Lesson 1. Simple Algorithms
Introduction to C. Structures. Algorithms.
Lesson 2. Asymptotic complexity of the algorithm. Recursion
Asymptotic complexity of the algorithm. Recursive search. Tower of Hanoi.
Lesson 3. Search in an array. Simple sorts
Search in a one-dimensional array. Interpolation search. Sorting an array.
Lesson 4. Dynamic programming. Search by return
Largest common subsequence. Dynamic programming. Backtracking search. Eight queens problem.
Lesson 5. Dynamic Data Structures
Stack, queue. Creating a stack using an array. Dynamic data structures.
Lesson 6. Trees
Binary search trees. Hash function. MD5. Hash tables.
Lesson 7. Graphs. Algorithms on graphs.
Graphs, graph traversal in width and depth. Wave algorithm. "Greedy Algorithms".
Lesson 8. Complex sorts
Hoare sort (Quick sort). Heap sort and Merge sort. CountingSort. Algorithm with a list (pigeonhole sorting). Block sort.
Internship at GeekBrains. 2 months.
In webinar format
During the internship, students will have to work remotely on an Open Source project or startup. Students will be asked to choose from a set of projects available for development. Students will learn to work in a team, communicate with other developers, product and project managers, designers, will study flexible methodologies, the SCRUM framework, and master the principles remote work. The result of the internship is the ability to work in a team, the addition of a portfolio, and the opportunity to indicate work on a project as core work experience in your resume. The internship takes place in the format of part-time remote work, weekly status meetings with the teacher in webinar format.
Lesson 1. Getting to know each other, choosing a project
What roles are there in development? Product Manager, Project Manager, developer, designer. What is MVP. Architecture of modern service. How developers interact with each other. REST API, Web Socket. Backend, Frontend, mobile applications. Microservice architecture. Basics of remote work. Sign up for teams.
Lesson 2. Development methodologies
Review of methodologies. Cascade (waterfall), Agile manifesto, Kanban, Scrum. Where and for what they are used. Mixed methodologies.
Lesson 3. SCRUM methodology
Work using SCRUM. Sprint planning. Backlog grooming. Sprint goal. Increment. Flexible methodology in remote working conditions. Task trackers (Trello, Favro)/
Lesson 4. User Story Mapping
Types of tasks. Decomposition of tasks. Mapping user stories. Working on user stories. Working with technical specifications using waterfall and flexible methodologies.
Lesson 5. Responsibility, motivation, personal growth
What and how to motivate yourself. What are the levels of motivation? How not to burn out at work. And how not to forget about work.
Lesson 6. Writing a resume
How to write a resume so that HR doesn’t reject it. How to interest an employer. How to demonstrate the skills acquired in your studies if you don’t yet have relevant work experience.
Lesson 7. Preliminary summing up, preparation for project defense
Analysis of student resumes. Preliminary summary. A little about startups, monetization, investors.
Lesson 8. Summing up, demonstrating the final project
Demonstration of a working prototype by students. Discussion of the results obtained. Feedback from the teacher. Parting words.