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

Разработчик с пятнадцатилетним стажем, а ныне технический директор образовательной онлайн-платформы для программистов Firehose Кен Мазаика (Ken Mazaika) рассказал на Quora о тех вещах, которые он хотел бы знать до начала изучения программирования. Мы подготовили небольшой список советов на основе его текста и делимся им с вами.

Обучение происходит через действие. Единственный путь совершенствоваться в программировании – постоянно программировать. Не позволяйте аналитическому параличу останавливать вас в самом начале.

Облегчать себе задачу – приветствуется. Регулярно гуглите ответы на возникающие у вас вопросы, так делает большинство программистов. Тут главное не заиметь привычку бездумно копипастить со Stackoverflow.

Самообучение – тяжелый труд. Особенно, если вы не общаетесь с другими программистами. Старайтесь находить пути для общения и обсуждения кода с более опытными специалистами, это поможет учиться быстрее.

Не нужно быть гениальным математиком. Если вы с математикой не на “ты” – это еще не значит что вам будет трудно в программировании.

Изучение программирование – это не подготовка к тесту. Заучивание разных штук вам не сильно поможет (см. п. 1).

Пробуждение начинается с мыслей о коде. Когда такое начинает случаться, это действительно крутые ощущения.

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

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

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

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

Алгоритмы – это как поиск номера в телефонной книге. Самое важное при знакомстве с алгоритмами – помнить, что в этом определении нет ничего сверхсложного. Любой алгоритм – это просто пошаговая инструкция, где есть только один верный следующий шаг.

Делайте так, чтобы компьютер действовал как человек. Многие думают, что программисту нужно мыслить как машина. Но должно быть ровно наоборот.

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

Пытаться понять все – безнадежно. В начале. Не пытайтесь найти ответ на вопрос “почему?”, когда возникает каждая новая проблема. В самом начале в этом нет необходимости, многие ответы придут позже сами, без дополнительного поиска.

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

Делать большие ошибки – нормально. Ошибка автора этого списка, Кена Мазаика, однажды стоила компании, где он работал 10 тысяч долларов. И это был самый важный урок в его программистской карьере.

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

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

  • Предоставьте все детали того, что вы видите (код, логи ошибок, скриншоты etc.)
  • Объясните, что точно по-вашему должно происходить
  • Объясните, что точно по-вашему происходит
  • Объясните почему так происходит по-вашему мнению

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

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

Вы никогда не будете чувствовать, что готовы к полноценной работе. Синдром самозванца никто не отменял. Просто помните, что знать все – нереально. Самое важное – это понимание, что, то, чего вы не знаете сейчас, вы выясните позже.

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

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

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

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

Вы пропустили

AEGIS Algorithms Android Angular Apache Airflow Apache Druid Apache Flink Apache Spark API API Canvas AppSec Architecture Artificial Intelligence Astro Authentication Authorization AutoGPT AWS AWS Aurora AWS Boto3 AWS EC2 AWS Lambda Azure Babylon.js Backend bash Beautiful Soup Bento UI Big Data Binary Tree Browser API Bun Career Cassandra Charts ChatGPT Chrome Extension Clean Code CLI ClickHouse Coding Codux Combine Compose Computer Context Fusion Copilot Cosmo Route CProgramming cron Cryptography CSS CTF Cypress DALL-E Data Analysis Data science Database dbt dbt Cloud deno Design Design Patterns Detekt Development Distributed Systems Django Docker Docker Hub Drizzle DRY DuckDB Express FastAPI Flask Flutter For Beginners Front End Development Game Development GCN GCP Geospatial Git GitHub Actions GitHub Pages Gitlab GMS GoFr Golang Google Google Sheets Google Wire GPT-3 GPT3 Gradio Gradle Grafana Graphic Design GraphQL gRPC Guidance HMS Hotwire HTML Huawei HuggingFace IndexedDB InfoSec Interview iOS Jackknife Java JavaScript Jetpack Compose JSON Kafka Kotlin Kubernetes LangChain Laravel Linux LlaMA LLM localStorage Logging Machine Learning Magento Math Mermaid Micro Frontends Mobile Mobile App Development mondayDB MongoDB Mongoose MySQL Naming NestJS NET NetMock Networks NextJS NLP Node.js Nodejs NoSQL NPM OOP OpenAI OTP Pandas PDF PHP Playwright Plotly Polars PostgreSQL Prefect Productivity Programming Prometheus Puppeteer Pushover Python Pytorch Quarkus Rabbitmq RAG Ramda Raspberry Pi React React Native Reactor Redis REST API Revolut Riverpod RProgramming Ruby Ruby on Rails Rust Scalene SCDB ScyllaDB Selenium Servers Sklearn SLO SnowFlake Snowkase Software Architecture Software Development Solara Solid Spring Boot SQL SQLite Streamlit SudoLang Supabase Swift SwiftUI Tailwind CSS Taipy Terraform Testing Transformers TURN TypeScript Ubuntu UI Design Unix UX UX Design Vim Vite VSCode Vue Web Architecture Web Components Web Development Web Frameworks Web Scraping Web-разработка Webassembly Websocket Whisper Widgets WordPress YAML YouTube Zed Наука о данных Разное Тренды

Как исследовать и визуализировать данные МО для обнаружения объектов на изображениях