Чтение онлайн

на главную - закладки

Жанры

Карьера в IT. Как найти работу, прокачать навыки и стать крутым разработчиком
Шрифт:

Не следует браться за что-то амбициозное или с навороченным пользовательским интерфейсом. Рекомендую ограничиться приложениями, которые умеют принимать только ввод данных с клавиатуры и выводить информацию на экран. Главное сейчас – научиться создавать простые программы, ориентированные на использование изучаемого языка программирования и стандартных библиотек, а не на использование дополнительных фреймворков – к ним мы перейдем позже.

Предлагаю несколько идей для программы.

• Программа, которая решает математическую задачу на основе данных пользователя.

• Программа типа «Выбери свое приключение», в которой

ход программы определяют действия пользователя.

• Простенькая текстовая приключенческая игра, в которой пользователь может отдавать команды, чтобы поднимать предметы, перемещаться по комнатам и т. д.

• Программа, которая будет читать ввод из текстового файла и записывать вывод в другой текстовый файл.

• Чат-бот, который разговаривает с пользователем и притворяется человеком или дает юмористические ответы.

Используйте конкретную технологию или платформу

Раньше вы должны были в основном изучать и использовать выбранный вами язык программирования изолированно. Так и задумано, потому что сначала вам нужно научиться понимать сам язык программирования и его стандартные библиотеки и почувствовать себя комфортно. И только потом добавлять какую-то среду и другие фреймворки для создания реального приложения.

Чтобы создать что-то полезное с помощью языка программирования, вам нужно будет применить его к определенной технологии или платформе.

Пришло время взяться за несколько небольших проектов, для которых потребуется использование языка программирования на определенной платформе.

Давайте предположим, что вы изучаете Java.

До сих пор вы писали код на Java, который сработает на любой платформе, где запускается Java, поскольку вы в основном использовали стандартные библиотеки и просто работали с вводом и выводом на экран или в файл. Теперь вы, например, решаете использовать Java для создания приложения для Android. Вам нужно будет узнать, как создавать приложения для Android, и о фреймворке Android. Однако вы уже знакомы с Java, поэтому вам не придется учить огромное количество концепций сразу.

Вы, конечно, можете изучать Android и Java вместе – на самом деле я создал курс, где именно этому и учил, – но если вам хочется по-настоящему овладеть языком и избежать путаницы, то разучить язык отдельно от платформы или технологии, а затем объединить их, вероятно, будет намного проще.

Теперь вам пора развивать конкретные, специализированные навыки работы с изучаемым вами языком программирования, которые будут полезны для получения работы.

Выберите любую платформу или технологию, с которой, как вам кажется, вы хотите работать в будущем, и начните создавать на ней небольшие приложения. Пока я рекомендую вам сосредоточиться только на одной технологии или платформе. Вы всегда сможете добавить еще одну позже.

Так вы не только ограничите то, чему вам предстоит научиться на данном этапе, но и приобретете более глубокие знания и компетентность в конкретной технологии. Это поможет вам стать гораздо увереннее в себе и значительно повысит востребованность ваших навыков.

Решайте сложные алгоритмические задачи

Вы уже должны быть достаточно знакомы с изучаемым языком программирования. Вы должны довольно хорошо знать

его и использовать в разных приложениях. Вы должны были выбрать конкретную технологию, применить к ней свои навыки и с легкостью создавать с ее помощью базовые приложения.

Тем не менее вы наверняка по-прежнему не чувствуете, что в совершенстве владеете языком программирования.

Не волнуйтесь, это тоже нормально.

Когда я только изучал C++, я помню, что даже после того, как я понял все об этом языке, использовал его для создания нескольких приложений и даже поработал программистом, пишущим код на C++, я все еще не чувствовал, что по-настоящему овладел этим языком.

Я чувствовал себя хорошим программистом на C++, но не отличным.

Мне хотелось улучшить свои навыки работы с языком, но я не знал как.

Затем я обнаружил сайт под названием TopCoder, где проводились соревнования для программистов. Каждую неделю там появлялся новый набор задач по программированию, и можно было посоревноваться с другими программистами в решении сложных алгоритмических задач.

Сначала это было ужасно. Я не мог решить даже самую простую задачу. Я смотрел на решения других людей и понятия не имел, как они к этому пришли или даже как работает их код.

Они использовали C++ таким образом, какого я и представить себе не мог.

Но со временем, пытаясь решать все новые задачи и глядя на то, как их решают другие люди, я постепенно начал становиться лучше… намного лучше. Я начал видеть закономерности в том, как решались определенные типы задач. Я начал по-настоящему понимать, как использовать функции C++, которые я раньше игнорировал. Я узнал, как эффективно использовать стандартные библиотеки, языковые возможности и структуры данных для решения сложных задач.

Я стал разбираться в C++ не просто хорошо, а превосходно. Наконец-то я почувствовал, что овладел этим языком.

Я хочу, чтобы вы поступили так же.

Вам не обязательно заходить на TopCoder, есть множество других мест, где вы можете попрактиковаться в решении задач программирования алгоритмического типа.

Я уже упоминал об одном хорошем источнике подобных задач, но вот еще несколько:

• «Карьера программиста» Гейл Лакманн Макдауэлл;

• «Жемчужины программирования» [10] Джон Бентли;

• Проект Эйлер [11] ;

• Codility;

10

Издавалась на русском языке. Питер, 2002 г. – Прим. ред.

11

Проект Эйлер – некоммерческий проект в Интернете, объединяющий любителей математики и программирования. Проект был запущен в 2001 году Колином Хьюзом и сейчас поддерживается небольшой группой энтузиастов. Участники проекта могут выбрать любую из существующих в текущий момент задач и решить ее с помощью любого известного им языка программирования. После ввода правильного числового ответа участник получает доступ к форуму по данной задаче, где участники обсуждают и сравнивают между собой найденные ими алгоритмы. – Прим. ред.

Поделиться:
Популярные книги

Попаданка в деле, или Ваш любимый доктор

Марей Соня
1. Попаданка в деле, или Ваш любимый доктор
Фантастика:
фэнтези
5.50
рейтинг книги
Попаданка в деле, или Ваш любимый доктор

Черный дембель. Часть 5

Федин Андрей Анатольевич
5. Черный дембель
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Черный дембель. Часть 5

В погоне за женой, или Как укротить попаданку

Орлова Алёна
Фантастика:
фэнтези
6.62
рейтинг книги
В погоне за женой, или Как укротить попаданку

Менталист. Конфронтация

Еслер Андрей
2. Выиграть у времени
Фантастика:
боевая фантастика
6.90
рейтинг книги
Менталист. Конфронтация

Идеальный мир для Лекаря 8

Сапфир Олег
8. Лекарь
Фантастика:
юмористическое фэнтези
аниме
7.00
рейтинг книги
Идеальный мир для Лекаря 8

Серые сутки

Сай Ярослав
4. Медорфенов
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Серые сутки

Ратник

Ланцов Михаил Алексеевич
3. Помещик
Фантастика:
альтернативная история
7.11
рейтинг книги
Ратник

Хозяйка старой усадьбы

Скор Элен
Любовные романы:
любовно-фантастические романы
8.07
рейтинг книги
Хозяйка старой усадьбы

Инквизитор тьмы 3

Шмаков Алексей Семенович
3. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Инквизитор тьмы 3

Третий. Том 4

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий. Том 4

Кодекс Охотника. Книга XII

Винокуров Юрий
12. Кодекс Охотника
Фантастика:
боевая фантастика
городское фэнтези
аниме
7.50
рейтинг книги
Кодекс Охотника. Книга XII

Возвращение Безумного Бога 2

Тесленок Кирилл Геннадьевич
2. Возвращение Безумного Бога
Фантастика:
попаданцы
рпг
аниме
5.00
рейтинг книги
Возвращение Безумного Бога 2

30 сребреников

Распопов Дмитрий Викторович
1. 30 сребреников
Фантастика:
попаданцы
альтернативная история
фэнтези
фантастика: прочее
5.00
рейтинг книги
30 сребреников

Помещица Бедная Лиза

Шах Ольга
Любовные романы:
любовно-фантастические романы
6.40
рейтинг книги
Помещица Бедная Лиза