ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Как стать программистом
  #1  
Старый 07.05.2007, 21:49
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
Thumbs up Как стать программистом

Многие вероятно интересуются, с чего начать обучение программированию. И именно поэтому я подобрал немного информаци.

Введение.
Эта статья не про выбор первого языка(несмотря на самый большой пункт тут).

1) А надо ли мне это?
действительно, советую хорошо подумать
Кто-то из KISS говорил примерно такое по смыслу "Если кто-то говорит, что он взял гитару и играет ради музыки, а не для того, чтобы заваливать телок, то это гон, можете плюнуть ему в лицо!" Тут заменяем телок на стабильные(хоть и небольшие) деньги, а музыку на кодинг =)

2) Для чего?
Собственно вопрос с подвохом. Ибо правильно ответят лишь немногие(и это будет совпадением).
А дело в том, что человек сам не знает, чего хочет. Да и как правило одним языком не заканчивается.

3) Определение первого языка для обучения. Эта часть займет около пары часов.
Есть 2 варианта: взять актуальный язык, либо язык типа паскаля или бейсика: которые не применяются.
Кто-то может возразить: мол Delphi или VB.NET. Разочарую их: Delphi и паскаль не имеют ничего общего кроме небольшого сходства в синтаксисе. Для VB.NET и BASIC оно и того меньше. И подходы в программировании абсолютно разные. Это все равно, что изучать C++, начав с книги по C. Но об этом поподробнее потом.
Однако хочу дать заранее совет: не стоит начинать с низкоуровневых вещей, т.к. при обучении программированию придется уделять не только алгоритму, но еще и работе с указателями, выделением памяти и прочими "вкусностями". Именно этим "страдают" C/C++/asm. Поэтому я бы не рекомендовал начинать с них - наверстать можно будет и потом(ну если конечно это будет нужно).
Итак, что у нас остается: Java, .NET(C#, VB.NET и подобные языки, распространено в основном в США), Delphi(только в бывшем СНГ, на общемировой арене это очень редкий зверь). и скриптовые языки: Python, Ruby, Perl. Так же существует PHP, однако для его изучения надо уже иметь теоретические(и желательно практические) знания о работе веба, многие этому не следовали, а что из этого получалось, можно узнать на phpclub.ru, посмотрев на тупейшие вопросы в основном разделе их форума).
Сам бы я посоветовал Python или бейсик. Кстати их объединяет одинаковая типизация: dynamic, strong. Кстати хочу заметить, что именно strong типизация позволит минимизировать количество логических ошибок.
Языки со strong-типизацией: Java, C++(именно C++, а не C), .NET языки, Python, basic, ruby, delphi. У C, Perl, PHP типизация weak(слабая).
Подробнее читать про конкретный язык в википедии(wikipedia.org).

4) Итак язык выбрали, с чего начинать?
С самого начала. По мере изучения языковых конструкций пробуем применять их на практике. это не сложный этап, однако именно на нем отсеивается большинство. И проблема с нехваткой материала для тренировок. Пример задачки(задача 1) можно увидеть в приложениях.

5) Допустим, выучили мы синтаксис. Ну или почти выучили. Ведь некоторые языки типа бейсика, C, Pascal или Java можно выучить(имеется ввиду только синтаксис, причем без magic-фишек) очень быстро. Но вот научиться применять его - намного сложнее.
Эта часть похожа на изучение поведения сферического коня в вакууме. Потому что на примерах ее изучить практически нельзя. Отложим этот этап.
Итак, добро пожаловать в реальный мир!

6) Чем отличается реальная задача от задачи из задачника? Правильно, тем, что она реальная. Для примера возьмем такую: написание программы для сортировки мейлов в файле. С графическим интерфейсом.
Что понадобиться знать? Работу с файлами, работу с GUI. Изучаем. Пишем. И перед нами уже начинает возникать проблема. Подробнее о ней немного дальше.
И именно на этом этапе начинаем изучать стандартные библиотеки языка/технологии. и не только стандартные.
Кстати, на этом этапе уже можно начинать зарабатывать. Однако качество продуктов будет хреновое
Решаем задачу 2(в приложениях).

7) Насчет проблем из пункта 5. Если работу с файлами можно сделать по принципам структурного подхода, то уже работа с GUI в этом стиле будет сплошным мучением. Итак, изучаем ООП. Именно практическую часть, т.к. в пункте 4 теория уже была выучена. Этап занимает достаточно много времени.
Именно по этой причине я не советовал начинать C++ с C, а Delphi с паскаля: переучиваться будет сложнее, чем начинать заново.
То есть учим теорию: ООП(нужно много практики), которая плавно перейдет в ООД, естественно надо будет знать паттерны, UML, принципы разработки и т.д.
Так же больше работаем на практике: регулярные выражения, работа с БД и SQL, GUI, сокеты, высокоуровневые протоколы, такие как HTML, FTP и всякие xmlrpc и SOAP, набор технологий XML и прочие.
Решаем задачу 3(на выбор).

8) Что дальше?
Совершенствуем свои навыки. Ты уже будешь сам знать, что тебе дальше делать.
P.S. Хочу заметить, что литературы на русском языке для тебя станет не хватать. Вообще. Так что знание английского обязательно. Именно обязательно, а не желательно.

И пару нюансов:
1) Практически для всех языком имеются свободные рабочие места. Ну кроме раритетных или специфических.
2) И вообще, если заказчику нужен готовый продукт, то ему, как правило, монопенисуально, на чем написан продукт.
3) У каждого языка своя направленность. Поэтому тупо применять к примеру PHP для написание клиентских приложений с GUI, а на ассемблере писать сайты или СУБД.
4) Заработок не зависит от языка/технологии, а только от уровня профессионализма.
5) А если занимаешься низкоуровневым программированием, то про ООП - не на твой счет.
6) Есть такое заблуждение: "Программист - это тот, кто умеет составлять алгоритмы". Так вот: умение составлять алгоритмы - требование обязательное, но не достаточное, на этом дальше 5 пункта(в этом обзоре) не уедешь.

Приложения:
Задача 1 (уровень: продвинутый школьник)
Старая задачка, обычно на школьных олимпиадах ее дают:
Имеется матрица (n*m) заполненная 1 и 0. Единицы - это острова, а нули - море. Если единицы находятся рядом по горизонтали или вертикали - то они образуют один остров. Найти количество островов.
P.S. Естественно могут быть "гнутые" и "дырявые" острова.
P.P.S. Как не странно, но решают ее редко, хотя она достаточно легкая.
Задача 2 Написать аналог wget.
Задача 3A Написать BB-парсер. Естесвенно не тупой подстановкой регекспов.
Задача 3Б Интерпретатор/HTTP-сервер/etc на выбор.

Версия текста 1.06. Приветствуются дополнения. Аська для связи 547097. nerezus

Последний раз редактировалось nerezus; 17.08.2007 в 23:28..
 
Ответить с цитированием

  #2  
Старый 07.05.2007, 23:46
Аватар для mR_LiNK[deface_0nl
mR_LiNK[deface_0nl
Участник форума
Регистрация: 12.12.2006
Сообщений: 158
Провел на форуме:
1364740

Репутация: 114
По умолчанию

Нужная вещь!
Неплохо было бы закрепить в разделе "С/С++, C#, Delphi, .NET, Asm", для отсеивания пустых тем типа 'с чего начать и т.д. т.п.'
 
Ответить с цитированием

  #3  
Старый 08.05.2007, 00:27
Аватар для Aag
Aag
Познающий
Регистрация: 26.07.2005
Сообщений: 54
Провел на форуме:
47901

Репутация: 46
По умолчанию

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

  #4  
Старый 08.05.2007, 00:39
Аватар для sni4ok
sni4ok
Участник форума
Регистрация: 04.11.2006
Сообщений: 150
Провел на форуме:
1174659

Репутация: 175
Отправить сообщение для sni4ok с помощью ICQ
По умолчанию

Цитата:
Сообщение от Aag  
А лучший способ освоить синтаксис языка программирования состоит в том, чтобы, изучая литературу по алгоритмам, параллельно реализовывать эти алгоритмы на выбранном языке программирования.
а я считаю, что синтаксис является самой основной,
и изучать язык стоит с тщательного штудирования именно синтаксиса.А вот например изучение алгоритмов при начале изучения с++ является только вредом- поскольку, это развивает в человеке велосипедостроительство, вместо развития привычки использования везде где возможно стандартных алгоритмов, которых хватает на 90 случаев из 100.
 
Ответить с цитированием

  #5  
Старый 08.05.2007, 13:59
Аватар для Aag
Aag
Познающий
Регистрация: 26.07.2005
Сообщений: 54
Провел на форуме:
47901

Репутация: 46
По умолчанию

Цитата:
а я считаю, что синтаксис является самой основной,
и изучать язык стоит с тщательного штудирования именно синтаксиса.А вот например изучение алгоритмов при начале изучения с++ является только вредом- поскольку, это развивает в человеке велосипедостроительство, вместо развития привычки использования везде где возможно стандартных алгоритмов, которых хватает на 90 случаев из 100.
Тема называется как стать программистом, а не как выучить язык программирования с++. Насчет алгоритмов, к велосипедостроительству ведет как раз незнание алгоритмов. На начальном этапе, программист должен изучить элементарные алгоритмы и принципы построения программ. Подумай откуда ты возмешь привычку использовать стандартные алгоритмы, если ты считаешь вредным изучать алгоритмы.
 
Ответить с цитированием

  #6  
Старый 08.05.2007, 14:33
Аватар для r0
r0
Постоянный
Регистрация: 17.07.2005
Сообщений: 475
Провел на форуме:
1665310

Репутация: 488
По умолчанию

Я думаю, что все эти слова можно выразит одной фразой:
единственный способ научиться программировать - писать конкретные программы.
А начать следует с устройства системы, того "мира" в котором будешь жить. Скажем, если это php, то лучше сразу понять как устроен Интернет, ибо сразу отпали бы вопросы типа:
"а почему пишет can not modify headers. Header already sent" =/
Хотя,однозначно, nerezus + за умение мыслить и четкое изложение результатов данного процесса =)
Хотя не факт, искать "свое" лучше самому, ведь это тоже только точка зрения.
 
Ответить с цитированием

  #7  
Старый 08.05.2007, 23:04
Аватар для podkashey
podkashey
Познавший АНТИЧАТ
Регистрация: 18.06.2005
Сообщений: 1,004
Провел на форуме:
2821162

Репутация: 1320


По умолчанию

Мля, все прочитали статью и подумали - вот нер какой сцуко умный! сцуко начитаный! И даже никто предположить не может, как он жидкости некоторые из горла попивает по утрам!!! ыгыг

Последний раз редактировалось podkashey; 08.05.2007 в 23:07..
 
Ответить с цитированием

  #8  
Старый 09.05.2007, 00:47
Аватар для Dronga
Dronga
ВАША реклама ТУТ!!
Регистрация: 01.07.2005
Сообщений: 647
Провел на форуме:
3478464

Репутация: 714


Отправить сообщение для Dronga с помощью ICQ
По умолчанию

А я не согласен... Бейсик это вообще тупиковая ветвь навязываемая Майкрософтом во всём, даже в других языках программирования. С питоном не сталкивался, молодой язык, видимо на данный момент весьма специфичный.. значит начав с него на нем и сядешь. ИМХО.

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

Я начинал с бейсика, ещё на АГАТах =) Так я там ничего и не понял... А вот когда за персоналкой посидел за паскалем, я осознал, что не всё потеряно.

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

Потом было _совсем поверхностное_ изучение Java. Можно сказать, мимолетная любовь, Java оказалась очень капризной и нудной.. Однако, после этого переход на PHP оказался делом очень приятным. Синтаксис очень схож, а остальное оказалось понятным и доступным. А там уже и SQL/JS/HTML прикладывается как правило.

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

Цитата:
Сообщение от nerezus  
монопенисуально
Слово подобрал какое =) И всё-таки извращенец вы, батенька, порядочный =) Статья понравилась, мнение отражает и мнение достаточно авторитетное.
__________________
My ICQ: 296@463@859 ONLY!! Please check your list!!
И здесь могла бы быть ВАША реклама!!!

Последний раз редактировалось Dronga; 09.05.2007 в 00:59..
 
Ответить с цитированием

  #9  
Старый 09.05.2007, 01:08
Аватар для podkashey
podkashey
Познавший АНТИЧАТ
Регистрация: 18.06.2005
Сообщений: 1,004
Провел на форуме:
2821162

Репутация: 1320


По умолчанию

Есть знакомые на Ruby кодящие - не пьют, разгульный образ жизни не ведут, скучные. ИМХО Ruby - секта.
Мы в инсте вообще изучали языки о которых тут 88 процентов форума не слышало даже. В 70х-80х придуманые. Я тогда не понмал зачем, почему и для кого мы это учим, когда все нормальные п0ц0ны уч0т дэлфи, ворд, интернет и компьютер. Только потом понял, что это все чтобы понять смысл построения алгоритмов итд, а от синтаксиса уже ничего в дальнейшем зависеть не будет... (в развитии программиста конечно)...
А так обсуждать ИМХО нех - если у человека есть предрасположенность к кодингу, то он сначала выберет свою ветвь развития, а потом найдет ачат. А если он сначала найдет ачат, то вряд ли он станет заядлым кодером, а поломится кавычки подставлять, стучать в аси с тупыми вопросами, пытаться продать все, что можно (по его мнению) продать и потратит на это все свое время. Если он окажется Бендером (что очень маловероятно), то я ему даже отчасти завидовать буду, если не окажется, то будет "у разбитого корыта(ипала)"... Вобщем все ИМХА моя такая...
 
Ответить с цитированием

  #10  
Старый 09.05.2007, 17:05
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Цитата:
но если поставить в один ряд с бейсиком и питоном... Дельфи однозначно в выигрыше.
Уверен? А я тебе скажу, что ты 100% ошибаешься. Причем нетолько по поводу бейсика(VB) и питона(кстати они популярнее делфи. Намного.), но и во всех частях своего сообщения Просто неправ

P.S. только что приехал в город ) Так что не надо... до сих пор башка трещит(8 литров на харю) )

Последний раз редактировалось nerezus; 09.05.2007 в 18:57..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как стать "звездой" блогов? D=P=CH= MOD= Болталка 5 27.01.2008 15:39
Кейлогер на Vb или как правильно играть в Gta!!! je0n Авторские статьи 6 25.05.2007 23:55



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ