18

Программирование для тех кто хотел бы его изучить часть 2. С чего начать?

Перво наперво должна быть идея, без идеи программирование перейдет из разряда "интересно" в разряд "пытка", быстрее чем вы скажете слово "Миссисипи".
Итак давайте разбираться по поводу идей.
Первое, идея должна быть простой, и вы должны понимать, что идея простая (чем больше вы программируете, тем больше вы будете оценивать идеи по силам). Идеи могут быть разные так что вот вам несколько примеров:
1 - автоматический тестировщик сайтов по пограничным значениям
2 - автоматический подбор контента, хотя на picabu
3 - мониторинг погоды с различных ресурсов
3 - http://habrahabr.ru/post/167459/
Какой язык программирования выбрать?
Рано или поздно, программист вырабатывает стойкое отвращение к 1 из языков программирования в то же время обожествляя другой язык (С - Паскакаль, PHP-ASP.net, Ruby-Phyton, C-C++-C#, Assembler - любой язык в принципе, включая тот же ассемблер (Tasm Masm и прочие)).
мой вам совет: НЕ ВЕДИТЕСЬ. Будьте объективны и доброжелательны к любым языкам и с пониманием относитесь к людям и их выбору, мнению, возможно вам придется с ними работать.
Краткий перечень языков с моей колокольни:
Phyton 2.7- простой и красивый язык. Подходит для задач, по автоматизации тестирования и просто выдирания контента с сайтов, мне очень приятно было разрабатывать такие небольшие программки (скрипты) по : опросу теплосчетчиков / электросчетчиков/ датчиков давления в реальном времени. Так же я использую пайтон для того чтобы объяснить племяннику программирование.
С - базука среди языков программирования, я достаточно много выстреливал себе в ноги и уважительно отношусь к нему и ко всем адептам , тем кто хотя бы раз ставил указатель на указатель. Последний раз я использовал язык С для реализации системы определения задымления внутри стойки.
C# - для прикладных задач под windows, где не так важна скорость самого приложения, но необходимо написать огромное количество кода для последующей сдачи на сборку.
С++ - тоже самое под Linux
Assembler - программировал электронные часы, делал пищалку, программировал графику на ZX. Понял что Assembler очень хорошо перестраивает голову в "нужном" ключе.
Pascal- Basic - На basic рисовал домики, круги, движение символа влево и вправо (да мне было 10 лет (1995 год), что вы хотите? движок Doom?) Паскаль был для меня наказанием, когда я слышу слово Паскаль - то в голове возникает преподаватель и его излюбленное "пишем лабораторную на паскале, никаких СИ!"
Есть фортраны, cobol-ы, браинфаки, если вы на них пишите, то вам эта статья покажется бесполезной и "детской" (да я пишу её для людей, которым кажется что программирование - магия и они бы хотели тоже научиться этой "магии").
Какую ОС выбрать?
Без разницы. Вы программист, просто выберите яд по вкусу. Главное не рассказывать всем как "винда сосет, а линукс рулит", главное пользователи, ведь лучше потратить время на доводку программы, чем ругаться на форумах. Или я не прав?
Какую IDE выбратиь?
Можно писать хоть в блокноте, главное чтобы было комфортно.
Моя программа не работает/некомпилируется/ПОЧЕМУ ЭТА ПРАААИСХОДИТ?
Во первых вам надо успокоиться, во вторых ВЫ должны понять, что 99% ваших ошибок сделаны ВАМИ же. Чем больше вы практикуетесь тем меньше ошибок вы будете совершать в дальнейшем. И чем дальше вы будете идти в программировании тем менее уловимыми будут ваши же ошибки (проблема четности, переполнения списков, израсходованная память, потерянные адреса, почему у меня работает а у тебя нет).
Какие бывают программисты?
Промышленные - это программист который весь рабочий день пишет код. Я работал в большой компании и честно слабо себе представлял что из моих классов в конце концов составит сборщик (специалист который соединяет код от программистов в 1 целое). Что ты пишешь? Зачем и почему? Неизвестно, известны только ТВОИ задачи. По мне лучший способ научиться программировать. Кстати, если у вас есть девушка или личная жизнь - забудьте о всех этих посторонних вещах.
Вынужденное программирование - чем сейчас занимаюсь я. Если есть возможность что-то автоматизировать - я начинаю придумывать. Чтобы все работало без моего участия, а данные обрабатывал кто-то другой (да я ленивая жопа), но эти данные я предоставляю в человеческом виде, а не абы как на "отвали".
Хобби программирование - на данный момент я хочу скопировать систему повреждений Dwarf Fortress. У меня нет начальника, нет сроков, я не заставляю себя, но и не ленюсь и стараюсь выделять своему хобби время.
Как писать хороший код?
Я не знаю. Некоторые говорят что мой стиль очень даже хороший, некоторые его терпеть не могут. Просто стараюсь сделать хорошо.
Почему пользователи козлы?
Если вы так думаете козел лично ВЫ. Пользователь дает нам, программистам, работу, деньги, и использует написанное нами ПО. Разве это не похвала за наш серый и невидимый труд? Когда ко мне не приходят баг репорты, я начинаю нервничать, думая, что моя программа никому не нужна и я зря потратил время.
Долго ли учиться, чтобы стать хорошим программистом?
Всю жизнь и ещё чуть чуть.

Литература для того чтобы научиться думать как программист:
http://e-maxx.ru/bookz/files/golub_cord.pdf
любой справочник по С-С++
Специально для Пикабу.
P.S. Не ругайте за ошибки - я не Пушкин.

Дубликаты не найдены

+1
Я бы еще про java упомянул. Вдруг кто хочет под android писать.
раскрыть ветку 3
0
Согласен, но при желании под андроид можно и на шарпе умудриться)) Правда не без костылей в среде)
0
А ну да, java. Java - это довольно интересный язык, как то мне пришлось написать крохотное приложение на этом языке под старенькую nokia (просто красивый вывод графика на экран + настройки). Для программирования под Android я бы все же рекомендовал C++. Я понимаю, будет сложнее, но и программы работать будут быстрее. Особенно если использовать эмулятор в SDK. Но если хочется на java написать, то почему бы и нет? Просто надо поставить виртуальную машину с андроидом (мне нравится называть его андрюхой) для комфортабельной работы.
раскрыть ветку 1
+1
Эмуляторы жесть какие медленные, поставь лучше рил устройство с включенным "отладка по USB"
Да и врут эмуляторы бывает) Например писал прогу для онлайн заказа такси, так на эмуляторе поиск по улицам тупо не работал, перегуглил все что можно, проблему не нашел. Решилось все тестом той же альфы на реальном телефоне)
0
В целом статья хорошая) Автор молодец))
п.с. а я братишку не смог заинтересовать в программировании) хотя возможно потому, что показывал ему дельфу xD
раскрыть ветку 3
+2
надо к этому подходить с умом, дети и подростки любят ВСЕ и СРАЗУ. пайтон дает такую возможность (с pygame, ОСОБЕННО с ним, хочешь линию - рисуй, хочеш квадрат пожалуйста). Больше конечно его привлекает железо, квадрокоптеры, умные котокормушки, мобильная связь, ассемблер и си для него темный лес, надо чтобы он набил руку и начал думать, разбивать идею на задачи задачи на подзадачи итак далее. Дальше хочу купить ему небольшой лабораторный стенд для опытов с Assembler ом.
раскрыть ветку 2
+3
похвально, последую твоему примеру, попробую показать ему питона)
блин.... звучит двусмысленно..
раскрыть ветку 1
0
Я начинал с Bash скриптов, потом немного Perl и оборвалось. С удовольствием почитаю продолжение, возможно пробужу в себе былые порывы.
0
Достаточно объективная статья. Сам после окончания ВУЗа пишу на С++ ) Помимо указателей на указатели есть еще и веселое преобразование типов ))
0
Python*
раскрыть ветку 2
0
*Не ругайте за ошибки - я не Пушкин.
заметил я уже все ошибки, некогда было проверять.
раскрыть ветку 1
0
Никто и не ругает
0
>> С++ - тоже самое под Linux
С++ это С# для линукса? Вы смеетесь? С++ продолжение (почти) C.
С# не как не связан с ними обоими, взял от них только синтаксис.
C++ в некоторых случаях сложнее С.
На С++ программа будет писаться дольше чем на C# или JAVA.
Нужен С# под линукс? Mono!
раскрыть ветку 2
0
Что? Вы меня не так поняли.
С++ отлично подходит для создания GUI, отлично подходит для программирования вала кода. Не надо особо думать, чтобы что и куда выделять. И часто решения на C++ более красивы чем если это реализовывать на С.
Насчет сложности вхождения или как вы выразились "сложнее чем на С", ваше дело. Выстрелить себе в ногу вы сможете быстрее на С, нежели на С++.
раскрыть ветку 1
+1
Если на линуксе хочется быстро и безопасно (как на C#) писать всякие плееры то подойдет Python.
На счет сложности между С++ и С не буду спорить, останусь при своем мнении, но С и С++ сложнее чем С#.
На всем можно написать плохо (cppcheck спасает от утечек памяти и пинает за не инициализируемые переменные :))
0
Вы забыли его наругать за "piCabu"!
Похожие посты
Возможно, вас заинтересуют другие посты по тегам: