Автор Тема: Език за начинаещи  (Прочетена 10302 пъти)

niksaan

  • Новаци
  • *
  • Публикации: 2
    • Профил
Език за начинаещи
« -: Jan 14, 2010, 17:18 »
Здравейте!

Искам да ви помоля да ме посъветвате от кой език е най-добре да започна. Значи, аз всъщност не съм точно начинаещ. Сега съм на 18 и преди години се занимавах активно с програмиране /Pascal и Delphi/, но в последствие с времето, по различни причини загубих интерес. Сега обаче искам отново да навляза в тази сфера, тъй като и ще кандидатствам с такава специалност и така.

Та аз бях чел някъде, че Python е добър избор, но все пак няма да откажа и второ мнение.

Благодаря ви предварително! :)
Активен

d0ni

  • Напреднали
  • *****
  • Публикации: 183
    • Профил
Re: Език за начинаещи
« Отговор #1 -: Jan 14, 2010, 17:46 »
Ако учиш език за начинаещ има шанс цял живот да си останеш такъв :-)

Бих ти препоръчал серизно изучаване на C и компютърната архитектура. Скриптов език, като Python, ще ти е полезен също, но най-важният език е C.
Активен

muxozavar

  • Напреднали
  • *****
  • Публикации: 497
  • Distribution: Debian Lenny / Fedora 11 x86_64 / Ubuntu 9.10 / Mac OS X 10.6.n
  • Window Manager: Gnome
    • Профил
Re: Език за начинаещи
« Отговор #2 -: Jan 14, 2010, 18:35 »
100% съгласен с d0ni

Като може да започнеш с http://www.zest-press.com/cgi-bin/book.pl?cs=1&isbn=954911659x. A ако четеш на английски може да си вземеш в оригинал.  [_]3
Активен

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: Език за начинаещи
« Отговор #3 -: Jan 14, 2010, 19:40 »
И аз съм за C, въпреки че може и със C++ да започнеш.
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

lkr

  • Напреднали
  • *****
  • Публикации: 81
    • Профил
Re: Език за начинаещи
« Отговор #4 -: Jan 14, 2010, 20:28 »
Моите 2 цента: http://mitpress.mit.edu/sicp/full-text/book/book.html
Активен

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: Език за начинаещи
« Отговор #5 -: Jan 15, 2010, 08:44 »
Щом ще гласуваме ;) Аз съм също за C (чисто, това с плюсовете отзад разглезва прекалено много по мое мнение). Това с Lisp все още се чудя как им се получава на американците, при нас още май не са отчели особени успехи в преподаването на функционално програмиране за увод в програмирането. Но функционалното програмиране rocks!!!
Всъщност, ако ще се учиш сериозно, и двата езика (и видове програмиране, които те представят) ще са ти повече от полезни, независимо как ще избереш да започнеш.
Активен

ivanatora

  • Напреднали
  • *****
  • Публикации: 658
  • Distribution: Ubuntu 10.04
  • Window Manager: Fluxbox
    • Профил
    • WWW
Re: Език за начинаещи
« Отговор #6 -: Jan 15, 2010, 09:02 »
Аз съм против С++ за започване, защото човек не може да се спусне и да почне да програмира, а трябва преди това да е изчел (и усвоил) един тон теория за обектно ориентирания подход. Повечето искат да вземат един туториал и да почнат по него (което не е лошо), но до сега не съм видял туториал, който да обяснява ООП както трябва. А и повечето начинаещи искат да почнат да сипят код и "нещо да става", а някак си е по-лесно това да стане със С. Разбира се, не говорим за изгъзици с програмиране с мишката като разни борландски билдъри и MS-ки MFC-та, нали?
Имам познати по университетите, които са ги почнали на С++, ама тяхното С++ няма нищо общо със С++ като идея. Печатат си по конзолата с printf(), четат потребителски вход с cin, инклудват хедърни файлове с #include <iostream.h>, и се чудят какво е това using namespace std; - някаква абсолютна мешаница. Накрая реват че програмите им не работят.
Активен

schemer

  • Напреднали
  • *****
  • Публикации: 49
  • Distribution: Debian
  • Window Manager: Gnome 2
    • Профил
Активен

Lord Bad

  • Напреднали
  • *****
  • Публикации: 1667
  • Distribution: Fedora 13
  • Window Manager: GNOME
  • Jedi Knight
    • Профил
Re: Език за начинаещи
« Отговор #8 -: Jan 15, 2010, 10:24 »
Не знам колко от хората, които ти даваха съвети досега са професионални програмисти, но аз поне съм - моето мнение е, че езика няма почти никакво значение - езика е само средство, а не цел... Когато овладееш програмирането на общо основание всеки език се научава доста бързо. Разбира се, някои езици са по-подходящи от други за определени цели. С например напоследък не се ползва много много за нови приложения, настрана от системен софтуер, разбира се - драйвери например. Чисто от практична гледна точка(търсена на работа) - най-добре е да се знаят Java, C# и PHP. Python и Ruby са супер елегантни езици, но позиции свързани с тях в България почти няма засега... Моя личен съвет е да се захванеш с Java - производен е на С, но е опростен, много могъщ, с огромна общност около него и е много търсен на пазара на труда. Хубаво е да отделиш малко време и на алтернативни стилове на програмиране - функционално(Lisp донякъде, Haskell) и логическо(Prolog). Алтернативите на императивното са полезни за мисленето като цяло :-)
Активен

Fuelled by Fedora 13 "Goddard"
====================================
Rock it!

Acho

  • Напреднали
  • *****
  • Публикации: 5290
  • Distribution: Slackware, MikroTik - сървърно
  • Window Manager: console only
    • Профил
    • WWW
Re: Език за начинаещи
« Отговор #9 -: Jan 15, 2010, 10:25 »
Здравей Никсан. Ето такъв постинг ме накефи. Да попита някой -> С КАКВО ДА РАБОТЯ, С КАКВО ДА СЕ ТРУДЯ ? A пък щом ти си се занимавал с Pascal и Delphi, това ще ти е от голяма полза в бъдеще. И аз бих препоръчал "C", а после, като задобрееш и почнеш работа един ден, ще пишеш на каквото си искаш, това "за което ти плащат". Хахаххахаххха - ама така става в живота. Пожелавам ти много успехи.
« Последна редакция: Jan 15, 2010, 10:27 от Acho »
Активен

CPU - Intel Quad-Core Q8400, 2.66 GHz; Fan - Intel Box; MB - Intel G41M-T2; RAM - DDR2-800, Kingston HyperX, 2X2048 MB; VC - onboard, Intel G41 Express Chipset; HDD - Toshiba, 500 GB, SATAII; SB - Realtek HD Audio; DVD-RW - TSSTcorp DVD-RW; LAN - Realtek PCI-E GBE Controller; PSU - Fortron 350 Watt.

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: Език за начинаещи
« Отговор #10 -: Jan 15, 2010, 11:03 »
Моя личен съвет е да се захванеш с Java
Lord_Bad, ти с Java ли започна? Аз започнах с нея (т.е. на това ни започнаха във ФМИ) и вярвам, че е голяма грешка. Т.е. после много лесно научих Python, просто защото ми беше много по-удобен за писане и ми даваше повече свобода, но за сметка на това C все още ми е частична мъгла, особено като стане въпрос за нещо по-близо до паметта. Мисля си, че нещата "C към Java" или наобратно са като "немски към английски" или наобратно. Лично аз, след английския, немския не успях да възприема. Разбира се, проблемът може да е и в моя телевизор. Със сигурност обаче има значение дали човек иска просто да се научи да програмира, за да си намери работа (в такъв случай PHP, Flex и няма какво повече да се занимава), или иска да бъде програмист.
Активен

e01

  • Напреднали
  • *****
  • Публикации: 37
  • Distribution: slackware, ubuntu
  • Window Manager: xfce 4.8/kde4.6
    • Профил
Re: Език за начинаещи
« Отговор #11 -: Jan 15, 2010, 12:37 »
Мен ми се струва, че навлизаме в спор в който се намесват привичките на всеки един от нас писалите  ::)
Още повече и че в основата си всички езици са сходни с разликата в синтаксиса разбира се.
Според мен трябва да започне със С, не заради друго, ами защото най-лесно и бързо може да получи помощ ако се оплете някъде, понеже всеки един от нас също знае С и би могъл да помогне.
Гласувам против РНР понеже, ако започне с него ще загърби типовите дефиниции което ще е сериозен проблем в последствие.
« Последна редакция: Jan 15, 2010, 12:39 от e01 »
Активен

1.6(64)am2,athlon/alivenf6g/2gb ddr2 (hate edition)
dell optiplex gx240
dell mini 9 (1.6/1gb/16gb SSD) (the new guy)

Lord Bad

  • Напреднали
  • *****
  • Публикации: 1667
  • Distribution: Fedora 13
  • Window Manager: GNOME
  • Jedi Knight
    • Профил
Re: Език за начинаещи
« Отговор #12 -: Jan 15, 2010, 12:48 »
Започнах с Pascal в гимназията, после със С. Pascal има чисто академична стойност общо взето... Работил съм близо 4 години като про С/С++ dev и това е нещо, което не пожелавам на никой - езиците са абсолютно култови, но просто и в двата има твърде много boilerplate и безброй дупки, в които може да изпадаш... За мен Java е един много достоен техен наследник. Иначе колко е удачно да почваш с него зависи главно от това колко ниско искаш да слежеш в познанията си - ако пишеш на С определено ще научиш много повече за управлението на паметта(понеже трябва да го правиш на ръка). :-) Всичко е въпрос на вкус...
Цитат
Гласувам против РНР понеже, ако започне с него ще загърби типовите дефиниции което ще е сериозен проблем в последствие.
Тоя ред е доста съмнително изказване с оглед на това, че почти всички модерни езици са динамични, а не статични... Силното типизиране определено помага да направиш по-могъщо IDE, но ограничава на толкова много нива...
Активен

Fuelled by Fedora 13 "Goddard"
====================================
Rock it!

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: Език за начинаещи
« Отговор #13 -: Jan 15, 2010, 12:54 »
Lord_Bad и e01 мисля, че говорите за различни неща (силно/слабо и динамично/статично типизиране) и всъщност сте съгласни един с друг :)
А иначе относно това на колко високо ниво трябва да се почне, ами ако познаваш добре по-ниските нива, ще пишеш по-добър и по-secure код на по-високите. Защото в крайна сметка тази програма върви върху машина. :)
« Последна редакция: Jan 15, 2010, 12:57 от bop_bop_mara »
Активен

tyuio

  • Гост
Re: Език за начинаещи
« Отговор #14 -: Jan 15, 2010, 13:58 »
Аз съм против С++ за започване, защото човек не може да се спусне и да почне да програмира, а трябва преди това да е изчел (и усвоил) един тон теория за обектно ориентирания подход. Повечето искат да вземат един туториал и да почнат по него (което не е лошо), но до сега не съм видял туториал, който да обяснява ООП както трябва. А и повечето начинаещи искат да почнат да сипят код и "нещо да става", а някак си е по-лесно това да стане със С. Разбира се, не говорим за изгъзици с програмиране с мишката като разни борландски билдъри и MS-ки MFC-та, нали?
Имам познати по университетите, които са ги почнали на С++, ама тяхното С++ няма нищо общо със С++ като идея. Печатат си по конзолата с printf(), четат потребителски вход с cin, инклудват хедърни файлове с #include <iostream.h>, и се чудят какво е това using namespace std; - някаква абсолютна мешаница. Накрая реват че програмите им не работят.
това пък какво изказване беше? на С++ може да си пишеш и процедурен код. аз смятам че Lord_Bad е най прав. макар че вече ми намирисва на флейм тука. Ето един добър сайт и добро обяснение за ооп на бг и то на видео:
http://nau4i.me
Цитат
Мен ми се струва, че навлизаме в спор в който се намесват привичките на всеки един от нас писалите  ::)
Още повече и че в основата си всички езици са сходни с разликата в синтаксиса разбира се.
Според мен трябва да започне със С, не заради друго, ами защото най-лесно и бързо може да получи помощ ако се оплете някъде, понеже всеки един от нас също знае С и би могъл да помогне.
Гласувам против РНР понеже, ако започне с него ще загърби типовите дефиниции което ще е сериозен проблем в последствие.
това пък направо ме уби! Е и аз съм почнал със С и да ти кажа в момента не ползвам силно типизирани езици. Колкото до РНР той е страхотен език и ако някой найстина реши да го учи ще разбере че трябва да схване идеята за типовете данни накар и да не ми се налага да я ползва често. Това пък че е трудно да преминеш от не типизиран език към силно типизиран е глупаво изказване. Аз сега се занимавам от любопитство с Lua  и да ви кажа от всеки език може да научиш нещо ново и интересно с което да допълниш познанията си за другите и да имаш един по широк поглед над програмирането.
« Последна редакция: Jan 15, 2010, 14:05 от tyuio »
Активен