Курсы программирования
Вам нужно научиться кодить. Программировать вы научитесь позже.
Никак не могу согласится, вредные привычки очень тяжело потом убрать. Хотя еще нет определения, что понимается под "кодить"?
Вот какие уровни я вижу
1. Просто знать язык
2. Уметь на нем описать алгоритм понятный машине.
3. Уметь на нем описать алгоритм понятный и машине и человеку.
4. Знать сопутствующие библиотеки/ технологии
5. Уметь создать правильную архитектуру программы.
Может еще чего пропустил...
" свой первый проект" вы бы какой сделали, если бы сейчас начинали?
не играет никакой роли. Делал всё подряд, что мне лично было как то нужно или интересно.
Ну вот например как можно начать.
Есть текстовый файл, книга допустим.
1. Просто прочитаем и выведем на экран
2. Подсчитаем статистику по буквам, сколько какие повстречалось.
3. Выведем статистку в графическом виде, на консоль.
4. Добавим статистику по словам, отсортируем чтобы наиболее часто повторяющиеся были вначале.
Смотрим, что нужно лингвистам и расширяем прогу. Добавляем нормальный интерфейс. Делаем версию для веба. Добавляем ссылку в портфолио
вредные привычки очень тяжело потом убрать.
Да в общем нет никаких вредных привычек. Просто потому, что по этой схеме чел делает всё по примерам. Философией нужно заниматься, когда она ложиться хоть на какую то базу, иначе это абстрактная абстракция
Для того, что бы просится на фирму, достаточно знать пункт 1. Остальному действительно могут натаскать, на фирме всегда есть примеры, нлюовичка никогда на новый модуль не посадят. А уж архитектура...
Для того, что бы просится на фирму, достаточно знать пункт 1
то бишь п2 даже и нужен при этом?
И для пункта 1 забыл - % знания языка. Тоже видимо большее место для дискуссий как их оценить, эти %.
бишь п2 даже и нужен при этом?
Ну в смысле не строго обязателен. Я имею в виду абсолютный минимум, с которым можно начинать. Ну например новичку можно дать запрограммировать новый вопрос в вопроснике. Он найдет в коде место, посмотрит код для предыдущих вопросов и дополнит по образцу. Для этого ему нужно понимать код. После этого он умеет делать конкретно эту рутинную работу. Ну где то так.
- % знания языка.
Здесь, как и в русском или немецком. Знаний должно быть достаточно, что бы с помощью помощи 😁 ( интернет или ранее написанный код) выразить свою мысль. Например задание сохранить вопрос на жёсткий диск. И как это сделать на Яве? Для этого нужно посмотреть, а не сохранял ли кто то уже что то в этой проге? Для этого нужно уметь этот кусок кода распознать . Ну или загуглить. И понять найденное. Сильно много знать не обязательно, но обязательно уметь найти недостающее при необходимости.
садятся двое в такси. беседуют.
- вчера был на приеме в итальянском посольстве. такой конфуз произошел! вместо вилочек для макарон подали вилочки для спагетти!
- это что, вот я был вчера на приеме во французском посольстве, так нам вместо ложечек для вишен подали ложечки для черешен!
таксист ерзал-ерзал, потом не выдержал:
- ребята, это ничего, что я к вам спиной сижу?
Вам нужно научиться кодить. Программировать вы научитесь позже.
А какая разница? Мне казалось это синонимы. Может быть имели ввиду выучит азы языка (синтаксис, операторы, итд)? А я думаю что сначало нужно думать как компьютерная программа.
" свой первый проект" вы бы какой сделали, если бы сейчас начинали?
-----
Если выкинуть навыки кодинга, то... тот же самый.
Ибо сейчас любой представляющий коммерческий интерес проект это счет на 100-ни человеко-лет...
А первый язык при самостоятельном изучении - всего месяца 2-3...
3. Уметь на нем описать алгоритм понятный и машине и человеку.
-----
Невозможно.
Описание алгоритма для машины - последовательность действий приводящая к заданному результату. Машина не будет выяснять "почему" надо считать именно так.
Человеку, чтобы понять алгоритм нужно аккурат понимать почему надо считать именно так.
А я думаю что сначало нужно думать как компьютерная программа.
-----
А как именно думает компьютерная программа?
А как именно думает компьютерная программа?
Сорри, я неправильно вырозился. Программист должен уметь со слов заказчика или когда работает с определённой программой построить алгоритм, сначало программист мысленно представляет как будет работать его программа (т.е. составление алгоритма), а потом составленый алгоритм переводит на определённый язык программирования. У каждого ЯП свой способ программирования. Допустим в одних языках есть что-то, а других языках этого нет. Допустим LINQ, анонимные функции, лямбды, кортежы, iff. И у каждого языка свой способ программирования, допустим в WebForm ASP NET есть компонент ListView https://docs.microsoft.com/ru-ru/dotnet/api/system.web.ui.... в ItemTemplate я проверял спомощью краткой записью условий if, типа такого - expression ? true_value : false_value, как вот тут написано: https://stackoverflow.com/questions/17067219/using-if-else...
Причём программист думает пальцами, и ещё использует зрительную кору.
Человеку, чтобы понять алгоритм нужно аккурат понимать почему надо считать именно так.
Алгоритм - "засыпать кофе, залить 150 г воды". Что должен понимать человек, "почему надо считать именно так"? Я могу написать этот алгоритм блок-схемами, кодом, текстом. Этот алгоритм будет понятен и человеку и машине. AlexNek здесь правильно написал
Есть. И мешают довольно сильно.
Нет. И не мешают вообще
Правда похоже, как в детском садике Ну а теперь пример - я взял учебник по практическому программированию(не философию) и прорешал все примеры. При этом, разумеется, я приобрел некоторые привычки, повторяя за автором учебника. Так откуда возьмуться те, которые мешают?
AlexNek написал 5 пунктов, что нужно уметь.
Это лично его точка зрения, т.к. он сам написал это:
Хотя еще нет определения, что понимается под "кодить"
Поэтому у каждого своя точка зрения.
Программист может написать программу. Кодер может написать кусок кода.
Давайте по другому.
1. Когда ищешь работу в объявлениях стоит что ищут "Softwareentwickler/in", что на русский переводится как "разработчик программного обеспечение", ну или "программист".
2. Когда разработчик программного обеспечение устраивается на работу в айти фирму, разработчиков разделяют на группы, каждый разработчик пишит свой кусок кода, иногда из-за NDA у разработчика нет доступа к другим кускам кода, и даже к целым модулям. Начальник же не знает, а вдруг программист когда уволится, устроится на другую IT фирму, и использует алгоритм с предыдущей работы.
Давайте по другому.
Давайте. 😀Определение кодер-программист не общепринятое и использовано мной в контексте темы, что бы разделить программистов, которые могут написать программу с начала до конца самостоятельно от программистов, выполняющие только конкретные указания под непосредственным управлением .
которые могут написать программу с начала до конца самостоятельно от программистов
Ну смотря какая программа, допустим "Hello World" она сначало и до конца. А если программа сложная, ну таких программистов единицы, и в итоге окажется что эта программа никому не нужная и можно сливать свой код сюда http://www.govnokod.ru/ .