Linux за българи: Форуми

Нетехнически теми => Идеи и мнения => Темата е започната от: niksaan в Jan 14, 2010, 17:18



Титла: Език за начинаещи
Публикувано от: niksaan в Jan 14, 2010, 17:18
Здравейте!

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

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

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


Титла: Re: Език за начинаещи
Публикувано от: d0ni в Jan 14, 2010, 17:46
Ако учиш език за начинаещ има шанс цял живот да си останеш такъв :-)

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


Титла: Re: Език за начинаещи
Публикувано от: muxozavar в Jan 14, 2010, 18:35
100% съгласен с d0ni

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


Титла: Re: Език за начинаещи
Публикувано от: b2l в Jan 14, 2010, 19:40
И аз съм за C, въпреки че може и със C++ да започнеш.


Титла: Re: Език за начинаещи
Публикувано от: lkr в Jan 14, 2010, 20:28
Моите 2 цента: http://mitpress.mit.edu/sicp/full-text/book/book.html


Титла: Re: Език за начинаещи
Публикувано от: bop_bop_mara в Jan 15, 2010, 08:44
Щом ще гласуваме ;) Аз съм също за C (чисто, това с плюсовете отзад разглезва прекалено много по мое мнение). Това с Lisp все още се чудя как им се получава на американците, при нас още май не са отчели особени успехи в преподаването на функционално програмиране за увод в програмирането. Но функционалното програмиране rocks!!!
Всъщност, ако ще се учиш сериозно, и двата езика (и видове програмиране, които те представят) ще са ти повече от полезни, независимо как ще избереш да започнеш.


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


Титла: Re: Език за начинаещи
Публикувано от: schemer в Jan 15, 2010, 09:23
:)
http://www.catb.org/~esr/faqs/hacker-howto.html


Титла: Re: Език за начинаещи
Публикувано от: Lord Bad в Jan 15, 2010, 10:24
Не знам колко от хората, които ти даваха съвети досега са професионални програмисти, но аз поне съм - моето мнение е, че езика няма почти никакво значение - езика е само средство, а не цел... Когато овладееш програмирането на общо основание всеки език се научава доста бързо. Разбира се, някои езици са по-подходящи от други за определени цели. С например напоследък не се ползва много много за нови приложения, настрана от системен софтуер, разбира се - драйвери например. Чисто от практична гледна точка(търсена на работа) - най-добре е да се знаят Java, C# и PHP. Python и Ruby са супер елегантни езици, но позиции свързани с тях в България почти няма засега... Моя личен съвет е да се захванеш с Java - производен е на С, но е опростен, много могъщ, с огромна общност около него и е много търсен на пазара на труда. Хубаво е да отделиш малко време и на алтернативни стилове на програмиране - функционално(Lisp донякъде, Haskell) и логическо(Prolog). Алтернативите на императивното са полезни за мисленето като цяло :-)


Титла: Re: Език за начинаещи
Публикувано от: Acho в Jan 15, 2010, 10:25
Здравей Никсан. Ето такъв постинг ме накефи. Да попита някой -> С КАКВО ДА РАБОТЯ, С КАКВО ДА СЕ ТРУДЯ ? A пък щом ти си се занимавал с Pascal и Delphi, това ще ти е от голяма полза в бъдеще. И аз бих препоръчал "C", а после, като задобрееш и почнеш работа един ден, ще пишеш на каквото си искаш, това "за което ти плащат". Хахаххахаххха - ама така става в живота. Пожелавам ти много успехи.


Титла: Re: Език за начинаещи
Публикувано от: bop_bop_mara в Jan 15, 2010, 11:03
Моя личен съвет е да се захванеш с Java
Lord_Bad, ти с Java ли започна? Аз започнах с нея (т.е. на това ни започнаха във ФМИ) и вярвам, че е голяма грешка. Т.е. после много лесно научих Python, просто защото ми беше много по-удобен за писане и ми даваше повече свобода, но за сметка на това C все още ми е частична мъгла, особено като стане въпрос за нещо по-близо до паметта. Мисля си, че нещата "C към Java" или наобратно са като "немски към английски" или наобратно. Лично аз, след английския, немския не успях да възприема. Разбира се, проблемът може да е и в моя телевизор. Със сигурност обаче има значение дали човек иска просто да се научи да програмира, за да си намери работа (в такъв случай PHP, Flex и няма какво повече да се занимава), или иска да бъде програмист.


Титла: Re: Език за начинаещи
Публикувано от: e01 в Jan 15, 2010, 12:37
Мен ми се струва, че навлизаме в спор в който се намесват привичките на всеки един от нас писалите  (http://www.linux-bg.org/Smileys/default/rolleyes.gif)
Още повече и че в основата си всички езици са сходни с разликата в синтаксиса разбира се.
Според мен трябва да започне със С, не заради друго, ами защото най-лесно и бързо може да получи помощ ако се оплете някъде, понеже всеки един от нас също знае С и би могъл да помогне.
Гласувам против РНР понеже, ако започне с него ще загърби типовите дефиниции което ще е сериозен проблем в последствие.


Титла: Re: Език за начинаещи
Публикувано от: Lord Bad в Jan 15, 2010, 12:48
Започнах с Pascal в гимназията, после със С. Pascal има чисто академична стойност общо взето... Работил съм близо 4 години като про С/С++ dev и това е нещо, което не пожелавам на никой - езиците са абсолютно култови, но просто и в двата има твърде много boilerplate и безброй дупки, в които може да изпадаш... За мен Java е един много достоен техен наследник. Иначе колко е удачно да почваш с него зависи главно от това колко ниско искаш да слежеш в познанията си - ако пишеш на С определено ще научиш много повече за управлението на паметта(понеже трябва да го правиш на ръка). :-) Всичко е въпрос на вкус...
Цитат
Гласувам против РНР понеже, ако започне с него ще загърби типовите дефиниции което ще е сериозен проблем в последствие.
Тоя ред е доста съмнително изказване с оглед на това, че почти всички модерни езици са динамични, а не статични... Силното типизиране определено помага да направиш по-могъщо IDE, но ограничава на толкова много нива...


Титла: Re: Език за начинаещи
Публикувано от: bop_bop_mara в Jan 15, 2010, 12:54
Lord_Bad и e01 мисля, че говорите за различни неща (силно/слабо и динамично/статично типизиране) и всъщност сте съгласни един с друг :)
А иначе относно това на колко високо ниво трябва да се почне, ами ако познаваш добре по-ниските нива, ще пишеш по-добър и по-secure код на по-високите. Защото в крайна сметка тази програма върви върху машина. :)


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


Титла: Re: Език за начинаещи
Публикувано от: v_badev в Jan 15, 2010, 14:17
Някой от препоръчалите C пред C++ може ли да ми обясни защо въобще е необходимо да се занимаваш с ръчно управление на паметта в наше време. Защо трябва да се чудиш сега трябва ли да викам free за този char* или не. И когато ти потрябва произволен контейнер (списък, хеш таблица, стек и т.н.) да си го пишеш сам, вместо да ползваш готовите. В крайна сметка почти всеки език ще ти свърши работа за начало, но според мен писането на C е прекалено тегаво за начинаещ.

Аз все пак бих препоръчал python. Лесно се пише на него и има готови модули за всичко.


Титла: Re: Език за начинаещи
Публикувано от: bop_bop_mara в Jan 15, 2010, 14:33
Фокусът не е да знаеш как се управлява "ръчно" паметта, а как се управлява и какво е това нещо памет. А C++ си има вградени структури от данни.
Не ме разбирай погрешно, аз обожавам Python, но виждам как е на практика - който е започнал със C/C++ после му се удават много по-лесно нещата.
Пък и ако Линус Торвалдс през 1991 г. се беше заел с Python вместо със системно програмиране на C, май нямаше да сме тук сега ;)

ПС. Асистентът ни по Логическо пък поддържа тезата, че човек трябва да започне да програмира с Prolog... Някой тествал ли го е това?


Титла: Re: Език за начинаещи
Публикувано от: tyuio в Jan 15, 2010, 14:34
Някой от препоръчалите C пред C++ може ли да ми обясни защо въобще е необходимо да се занимаваш с ръчно управление на паметта в наше време. Защо трябва да се чудиш сега трябва ли да викам free за този char* или не. И когато ти потрябва произволен контейнер (списък, хеш таблица, стек и т.н.) да си го пишеш сам, вместо да ползваш готовите. В крайна сметка почти всеки език ще ти свърши работа за начало, но според мен писането на C е прекалено тегаво за начинаещ.

Аз все пак бих препоръчал python. Лесно се пише на него и има готови модули за всичко.
Еми щом питаш значи повръхностно програмираш.
Какво значи в наше време да не би драйверите да са почнали да се пишат сами щото аз незнам. Никакъв програмист няма да си ако не знаеш как мисли компа а това става баш най добре със С. Я погледни статистиката на кое място е езика все още по използваемост а!
Второ, повечето модерни езици са С-подобни така че къде е довода да не се изучава или по точно какво против него имаш? Идеята идва от него като синтаксис и всички останали които са му подобни му подражават и изменят според нуждите си. Що езика "другия" език се казва С++ а не асемблер++ а?


Титла: Re: Език за начинаещи
Публикувано от: v_badev в Jan 15, 2010, 15:52
който е започнал със C/C++ после му се удават много по-лесно нещата.
Е тук е първата разлика между гледните ни точки :) За мен C и C++ са различни езици. В C++ освен че можеш да пишеш обектно ориентиран код имаш прихващане на грешки, стандартна библиотека със стрингове, контейнери и т.н., в C нямаш нищо подобно. Като пишеш на C++ се занимаваш с управление на паметта само когато поискаш, докато в C се налага да го правиш постоянно.

Пък и ако Линус Торвалдс през 1991 г. се беше заел с Python вместо със системно програмиране на C, май нямаше да сме тук сега ;)
През 1991 нито C++ нито Python са ставали за сериозна употреба.

ПС. Асистентът ни по Логическо пък поддържа тезата, че човек трябва да започне да програмира с Prolog... Някой тествал ли го е това?
Аз съм писал малко на пролог. Ужасно е бавен и почти няма готови библиотеки за него, тоест не може да напишеш реална програма.

@tyuio - Аз наистина не съм писал драйвер никога. Ама тук май си говорихме за начинаещи. Ти познаваш ли някой който е започнал да се учи с писане на драйвери?
Това че много езици ползват приблизително синтаксиса на C не означава че са eднакви с него, нито че C е по-добър или по-лесен от тях. C# съдържа C в името си и прилича по синтаксис на него, но едва ли ще намериш много хора които да се съгласят че двата езика си приличат. Ключовите думи и запазените символи са много малка част от един език за програмиране.
Това кой език колко се ползва също не е много определящо. Той и COBOL се ползва много все още, но не съм видял никой да го предлага.
А защо предпочитам C++ пред C виж по-нагоре.


Титла: Re: Език за начинаещи
Публикувано от: b2l в Jan 15, 2010, 16:14
...C# съдържа C в името си и прилича по синтаксис на него...
А на мен някой ще ми обясни ли на какво казвате "синтаксис", че стана голяма каша.
Между printf() и Console.Write() не виждам общ синтаксис. Тука до мен ми подсказват, че на края на всеки ред и в C и в C# се пишело ";" (точка и запетая), но пак питам какво е синтаксис?


Титла: Re: Език за начинаещи
Публикувано от: bop_bop_mara в Jan 15, 2010, 16:26
А на мен някой ще ми обясни ли на какво казвате "синтаксис", че стана голяма каша.
Между printf() и Console.Write() не виждам общ синтаксис. Тука до мен ми подсказват, че на края на всеки ред и в C и в C# се пишело ";" (точка и запетая), но пак питам какво е синтаксис?
http://en.wikipedia.org/wiki/Programming_language#Syntax :) Точно това, което си мислиш е синтаксис :)

Е тук е първата разлика между гледните ни точки :) За мен C и C++ са различни езици. В C++ освен че можеш да пишеш обектно ориентиран код имаш прихващане на грешки, стандартна библиотека със стрингове, контейнери и т.н., в C нямаш нищо подобно. Като пишеш на C++ се занимаваш с управление на паметта само когато поискаш, докато в C се налага да го правиш постоянно.
А аз изобщо не ги приравнявам 2та езика, но за мен излишният е C++. Ако искаш ООП - Python е ООП :) (Мнението е мое, не го налагам :) )

Цитат
Аз съм писал малко на пролог. Ужасно е бавен и почти няма готови библиотеки за него, тоест не може да напишеш реална програма.
Пролог не е език за писане на реална програма. Той е език, написан от хората, занимаващи се с математическа логика, за тях самите. Пролог може да ти развива мисленето. Поне така твърдят :) Иначе и във ФП има достатъчно рекурсия.

Цитат
Ама тук май си говорихме за начинаещи.
Именно, говорим си за това на кой език да започнем да се учим да програмираме, а не на кой език да започнем да се учим да работим. Вярно е, че програмиране се учи с програмиране, но е вярно и, че всяко растение трябва да си има корени, за да живее :)


Титла: Re: Език за начинаещи
Публикувано от: ivanatora в Jan 15, 2010, 17:01
Някой от препоръчалите C пред C++ може ли да ми обясни защо въобще е необходимо да се занимаваш с ръчно управление на паметта в наше време. Защо трябва да се чудиш сега трябва ли да викам free за този char* или не. И когато ти потрябва произволен контейнер (списък, хеш таблица, стек и т.н.) да си го пишеш сам, вместо да ползваш готовите.
Моето мнение е че това е идеята на обучението. Да видиш как стават нещата. Да си направиш сам стековете, списъците и всички играчки по паметта. Да усетиш къде какви тънки моменти има, преди да почнеш да ползваш всички ресурси на готово. Обучението трябва да започва от малките неща и постепенно да се стига до по-трудните с градация.
Тук не сравняваме 'тоя език' VS 'оня', защото такива общи сравнения въобще не може да има. Говорим кое е по-подходящо точно за целите на обучението.


Титла: Re: Език за начинаещи
Публикувано от: v_badev в Jan 15, 2010, 17:19
Всъщност какво точно ти пречи да напишеш стек или хеш таблица на C++? До колкото знам в НБУ точно по този начин учат структури данни. По твоята логика правилният начин за запознаване с Linux е да си направиш LFS ($2) за да схванеш нещата как се правят. И без това правилният начин за научаване на един език е като си купиш добра книга по темата и си я прочетеш.


Титла: Re: Език за начинаещи
Публикувано от: bop_bop_mara в Jan 15, 2010, 18:37
Къде учат СД другояче?? И ние сме си писали всякаквите структури, при това на Джава, при това лекторът ни показваше суперкрасив и изпипан код за тия структури, на практика от 3те курса УП, ООП, СД точно там се научихме на стил и на "духа на Джава".


Титла: Re: Език за начинаещи
Публикувано от: v_badev в Jan 16, 2010, 16:41
Имах в предвид че в НБУ ползват C++ за да учат структури от данни. В ТУ, поне преди десетина години се учеха на Pascal. Кода е горе-долу еквивалентен на кода на C, само без адресната аритметика.

Аз също препоръчах Python, просто се опитах да разбера защо хората предпоръчват да се започва със C вместо със C++.

//off-topic
Какво значи УП? ООП и СД ги разшифровах, но това не се сещам какво значи.


Титла: Re: Език за начинаещи
Публикувано от: progmetal в Jan 16, 2010, 17:02
Увод в програмирането  :)


Титла: Re: Език за начинаещи
Публикувано от: tyuio в Jan 16, 2010, 17:43
Смятам че тази тема освен за флейм за нищо друго не става! Не помагаме изобщо а си говорим на нямакъв висок език само за спорта кое против нещо.

Към питащия:

Отговори си на въпроса какво искаш от програмния език който искаш да учиш и дали той отговаря на изискванията ти. Ако найстина си учил тези два езика за които споменаваш може да не си наистина напълно начинаещ.
Езиците си имат специфични плюсове и минуси както всичко около нас примерно:
РНР е страхотен за уеб но почти не става за десктоп приложения ако не говорим за връзката му с гтк+. Има голямо комюнити и у нас?

Джава - много як език става много добре и за десктоп и за уеб и телефони. Не искам да флейма но все пак споменавам че е (поправка) МАЛКО ПО бавен особенно за големи програми (поправка) за десктоп които иначе имат много билблиотеки за почти всичко което се сетиш.

питон и руби - много добри езици с лесен синтаксис и начин на работа. Няма много големи проекти за него и малка общност у нас макар че се развива.

пърл - нещо позамира напоследък щото много се бави новата версия. странен синтаксис и понякога почти не четим но иначе много гъвкаф и страхотен за системно администриране и уеб макар че рнр вече го е задминал :)

джаваскрипт - много ползван в уеб приложенията но бързо наваксва и скоро ще излезе от лоното на браузерите лесен синтаксис
има още ама стига ако има флейм да започва !


Титла: Re: Език за начинаещи
Публикувано от: BlackMetal в Jan 16, 2010, 17:45
Аз не съм съгласен с никой препоръчал C/C++/C# .... (C# = C ++ ++ = E :D C++ = D, D++ = E :D :D)

Нека да започне с нещо с което да не се притеснява за контрол на памета, а да програмира, като наблегне на алгоритмичната част, после щe ако има интерес много бързо ще се научи да ползва free() правилно, да работи с поинтери и каквото си поиска на какъвто си език поиска.

Аз например започнах да се уча на Java.


Титла: Re: Език за начинаещи
Публикувано от: Lord Bad в Jan 16, 2010, 19:02
Цитат
Джава - много як език става много добре и за десктоп и за уеб и телефони. Не искам да флейма но все пак споменавам че е малко бавен особенно за големи програми за които иначе имат много билблиотеки за почти всичко което се сетиш.

Такива изказвания за мен не помагат на никой, защото нямат нищо общо с реалността. Първо какво значи, Java е бавен език??? Виртуалната машина можеш да кажеш, че е бавно, но езика - това е абсурд... Настрана от това изказване актуалната виртуална машина Java 6 HotSpot генерира код, който е само 20% процента по-бавен от native С приложение на първо четене и при достатъчно дълго изпълнение на едно приложение виртуалната машина ще го оптимизира и кешира толкова тежко, че може да тръгне по-бързо от и native C приложението. Не искам да влизам в детайлите, но това че виртуалната машина е бавна е уникална заблуда, която датира от времето на Java 1.3 да речем... И половината така наречени "enterprise" приложения са писани на Java - интересен факт, ако наистина не е подходяща за големи приложения ;-)

Нещата стават флейм, когато някой се изказва на общо основание без да е съвсем наясно какво говори. Няма да коментирам другите точки, че иначе сигурно аз ще бъде набеден за флейм(пък и ме мързи), но все пак е хубаво да си проверявате фактите преди да пишете нещо...


Титла: Re: Език за начинаещи
Публикувано от: tyuio в Jan 16, 2010, 21:34
Добре де, не се изразих правилно поправих се  МАЛКО ПО БАВЕН и не съм казал че не е за големи приложения напротив знам с какво ползват големите бази данни, говорих за десктоп. Ся знам какво ще стане ако се появи някой руби и питонски програмист :)


Титла: Re: Език за начинаещи
Публикувано от: Lord Bad в Jan 16, 2010, 23:29
Аз и като такъв се изживявам, но ме мързи да пиша повече ;-) Всеки език има своя чар и своите дупки - програмирането е като живота - няма пълно щастие :-) А и народа най-добре го е казал - ако всички мислят еднакво, значи никой не мисли въобще...


Титла: Re: Език за начинаещи
Публикувано от: niksaan в Jan 17, 2010, 20:02
Така, прочетох всички мнения внимателно, размислих и като че ли се спрях на Java. Чел съм и на други места, че С е ключовият език към разбирането на програмирането /ако мога така да се изразя/, но съм и чел, че на начинаещи, а и на завършени програмисти, може да докара много главоболия. А в момента имам и други грижи като матури и тем подобни, така че прецених, че е малко рано за него. Времето ще покаже дали е било правилно решението.

И все пак, искам да благодаря на всички, които се отзоваха и да попитам също дали някой има впечатления от тази книга за Java на НАРС. Тъй като сега съм се хванал от нея да почвам и ми изглежда добре организирана, но все пак.


Титла: Re: Език за начинаещи
Публикувано от: nifelheim в Jan 17, 2010, 20:21
Ето едно ръководство за избор на програмен език:
http://nifelheim.homeip.net/nifelheim/fun/Shoot.pdf ($2)
 ;D


Титла: Re: Език за начинаещи
Публикувано от: tyuio в Jan 17, 2010, 21:47
Аз мисля че книгата не е лоша само деро не ми е ясно как така първите 100 страници гласят "Вижте колко сме велики!" Но ако говорят на твоя език авторите, значи всичко е наред


Титла: Re: Език за начинаещи
Публикувано от: Lord Bad в Jan 17, 2010, 22:58
На български няма нито една прилична книга за Java в актуално издание, а авторските книги като тия на Наков и компания са доста посредствени... Хубава уводна книга е например Core Java


Титла: Re: Език за начинаещи
Публикувано от: bop_bop_mara в Jan 18, 2010, 01:02
На нас ни препоръчаха в 1ви курс Thinking in Java на Bruce Eckel. Доколкото си спомням, наскоро беше преиздадена на български. Аз не съм я ползвала, но, ако някой има впечатления от нея, да каже :)


Титла: Re: Език за начинаещи
Публикувано от: BlackMetal в Jan 18, 2010, 07:30
Ами едно време когато аз започвах да се уча, ползвах освен лекциите и "java in a nutshell",  може да хвърлиш поглед на това безплатно издание, според мен не е много подходящо, но е безплатно: http://www.javabuch.de/

"Java ist auch eine Insel" - http://openbook.galileocomputing.de/javainsel8/ е също добър старт.


Титла: Re: Език за начинаещи
Публикувано от: Lord Bad в Jan 18, 2010, 10:47
Thinking in Java не е лоша книга, но разглежда ограничена част от платформата, на моменти в нея се препоръчват доста съмнителни практики и е по-скоро забавна отколкото практична. За съжаление доколкото знам в България никога не са издавали повече от второто издание на книгата... Третото издание е безплатно достъпно тук ($2), а актуалното е четвъртото...


Титла: Re: Език за начинаещи
Публикувано от: biggie в Jan 18, 2010, 10:50
Според вас Python става ли за първи език, и ако има хора, които са минали по този път - от какви източници учехте и прочее? :)


Титла: Re: Език за начинаещи
Публикувано от: Lord Bad в Jan 18, 2010, 11:24
Всичко става за първи език :) Python има на сайта си доста подробни tutorials, с които можеш да почнеш. Аз лично първо прочетох книжката Learning Python, ако нямаш никаква идея от програмиране, обаче, тази книжка ($2) мисля, че е най-добрата идея.


Титла: Re: Език за начинаещи
Публикувано от: neter в Jan 18, 2010, 16:43
А какво ще кажете за haXe ($2)? Сериозно питам, днес по случайност попаднах на него, още не съм имал възможност да разгледам за какво иде реч, но звучи интересно в описанието - език с отворен код, мултиплатформен, компилираш към който език поискаш (от поддържаните)... А бутонът Community в сайта ме кара да си мисля, че може би има (поне някаква) общност зад него, готова да помага, ако ръководствата се окажат непълни за някого. Какво пречи един начинаещ да започне с него - хваща юздите на няколко езика, докато програмира на един, а синтаксисът си е синтаксис - учи се с времето и опита. Интересно докъде ли е стигнал и докъде смята да стигне този проект - на мен ми се вижда полезно :)


Титла: Re: Език за начинаещи
Публикувано от: schemer в Jan 18, 2010, 17:26
Аз попаднах на haXe, когато търсех някакав вариант да пиша за флаш по линукс.
След като се запознах с документацията, и без да имам какъвто и да е опит с флаш преди ( освен да
цъкам по готови неща ), си преведох един пример за поточно пускане на видео.

Определено ми хареса, въкпреки че нямам за какво да го ползвам сериозно :)


Титла: Re: Език за начинаещи
Публикувано от: go_fire в Jan 18, 2010, 19:20
Аз започнах на Питон двехилядната. Отличен език. Е ако не броим бъзик края на осемдесетте:

10 Go to bah go  ;D

Тъй като не станах програмист, не съм добър пример, но пък като се захванах с php влязох в час буквално за ден и можех да правя доста сложни неща, но пък също така значи, че някой елементарни просто не ми идват на акъла веднага, как стават. Питон е нож с две остриета. От една страна, много от рано можеш да ползваш всякакви висши пилотажи, от друга страна без сериозно практическо приложение, може да се окажеш в небрано лозе, когато правиш цикли с масиви в друг език например. Дано се изразих правилно.


Титла: Re: Език за начинаещи
Публикувано от: hyankov в Jan 21, 2010, 16:38
Май само аз не съм се разписал, така че и мойто време дойде.

Според много зависи от това към каква област искаш да се ориентираш. Въпреки че във всички случаи ще трябва да се запознаеш с математиката в програмирането, а именно алгоритми и структури от данни. Освен това ако искаш да израстнеш и като акъл, и като професионалист, ще е необходимо да се научиш на тъй наречения "дизайн на софтуер", а именно - в момента в който ти дадат някаква смислена задача да не се втурваш да търсиш с коя функция се правеше еди кое си, а да си представиш нещата на още по високо ниво като блокчета и връзки между тях. Иначе казано - молива, хартията и диаграмите не са отживелица а фундамент в програмирането. Накрая, може би и по важност (според мен), идва познаването на изчислителната техника поне основни понятия. Дори да решиш да се занимаваш с разни уеб глупости (за което наблюдавам, че има сериозен глад, поне в България) трябва да имаш поне елементарна представа какво е това памет, как се заделя, освобождава, достъпва и какво коства това на процесора/ите, хеш, рекурсия, независимо колко добре даден език скрива това от теб. Не е нужно да изобретяваш колелото, но може да е само плюс ако знаеш как работи.

И след този кратък увод ето и моите предложения за езици:
1) C - лично аз го учих с наръчника на Хърбърт Шилд, но подозирам, че нещата щяха да се развият много по-добре ако бях започнал с Кърниган и Ричи (Програмният език С). Невероятно добра книга, кратка, ясна, със страхотни примери в нея. Ще се запознаеш с работата на компютрите на толкова ниско ниво, колкото е задължително за всеки програмист (независимо в каква сфера) (отново лично мнение).
2) Тук вече идва широкия избор - научи някакъв език с добра обектно-ориентирана подръжка. Моят фаворите C++, Java, Python, с РНР, Perl, JavaScript не съм запознат, но другите са изказли различни мнения. На този етап ако все още имаш интерес бих ти препоръчал и една фундаментална книга "Design Patterns", но тя би ти била доста полезна при работа върху истински проекти, заедно с други хора с повече опит в дизайна.

За алгоритмите ... нищо не мога да ти кажа, винаги ми е било скучно да ги изучавам просто, за да ги науча (може би task_struct би казал "You'd better remain poor mathematician"). Обикновено съм разучавал конкретни видове, но съм знаел каква е крайната цел. Както и да е и тях ги разучавам на C, просто на мен ми се вижда най-чист и най-лесно го рабирам.

Накратко мнението ми - започни със С (почти задължително), научи поне един ОО език (C++/Java) не толкова за езика, колкото за да опознаеш принципите на ООП и дизайна.

Поздрави,
Ицо

ПП: Вече съм в екшъна и очаквам яко оплюване :)


Титла: Re: Език за начинаещи
Публикувано от: go_fire в Jan 25, 2010, 00:23
Какво очакваш да кажем, че не си наред с главата щом говориш за патерица? Че само пълен некадърник би писал с патерица, за да скрие, колко не може? Или нещо друго?

Споко няма, ама като чуя за патерицата все се сещам за мъдростта на онзи народен поет от преди години Паньо:

http://clubs.dir.bg/showthreaded.php?Board=programers&Number=1949201127&page=1&view=collapsed&sb=5


Титла: Re: Език за начинаещи
Публикувано от: hyankov в Jan 25, 2010, 09:47
Не разбрах шегуваш ли се, или сериозно го мислиш?

За разлика от Паньо, не съм фанатик и не "пиша на дизайн патърнс". Мисълта ми беше, че всеки един смислен проект се нуждае от смислен дизайн. А книгата наистина е фундаментална в това отношение - и като запознаване с основите на дизайна, и като справочник. Ако всички тук са достатъчно гениални, за да виждат дизайна в съзнанието си и никога не забравят или пропускат нещо от него - извинявам се. "На мен нещо не ми е наред главата" и затова използвам молив, хартия и книги.

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

Поздрави,
Ицо


Титла: Re: Език за начинаещи
Публикувано от: m0rph в Jan 25, 2010, 10:56
Цитат
ПС. Асистентът ни по Логическо пък поддържа тезата, че човек трябва да започне да програмира с Prolog... Някой тествал ли го е това?

Реално започнах с "основавата" Basic  :), после минах през C, а в университета поразучих C++, но реално, първия език за който ми плащат да работя е производен на Prolog. Що се отнася до другите езици, Prolog е доста различен. Изисква по друг начин на "мислене". Мислене на логическо ниво. Има нещо много елегантно в програмите писани на пролог, може би защото това се доближава до голяма степен на начина по който действа мозъка ни. Сега, три години по късно забелязвам, че ми е все по трудно да пиша програми на нещо "нормално", така че не мисля че Prolog е подходящ за сега започващи, за това и аз подкрепям чистия "C", защото по този начин човека остава най близко до машинната логика (без да броиме асемблер) и изучава паралелно езика и машината на която работи.


Титла: Re: Език за начинаещи
Публикувано от: go_fire в Jan 26, 2010, 19:20
E-e-e Янков, много се засягаш бре момче. Внимавай с нервите. Горе писах, че не съм погромист дори. Книгата е основополагаща вярно. Ама какво пък толкова пречи да се поебаваме с колектива? Правилната постъпка беше да изтреляш нещо остроумно, а не да се жалваш. по-свежо бре момче го давай и няма да остарееш рано ;)


Титла: Re: Език за начинаещи
Публикувано от: mat в Jan 27, 2010, 18:59
Аз лично не мисля, че е толкова важно кой ще е езика, а по-скоро коя ще е библиотеката.
За какво ми е език с бедна библиотека?
Направо не е за вярване, че никой не е споменал Qt C++. Има си пълна, огромна библиотека и супер яка поддръжка и комюнити. И най-важното - бъдеще.
Не знам защо това Делфи умря (някой може ли да ми каже), след като беше най-добрата алтернатива на MS, а и също изглеждаше да е с добро бъдеще (поддръжка).


Титла: Re: Език за начинаещи
Публикувано от: tyuio в Jan 27, 2010, 19:25
Аз лично не мисля, че е толкова важно кой ще е езика, а по-скоро коя ще е библиотеката.
За какво ми е език с бедна библиотека?
Направо не е за вярване, че никой не е споменал Qt C++. Има си пълна, огромна библиотека и супер яка поддръжка и комюнити. И най-важното - бъдеще.
Не знам защо това Делфи умря (някой може ли да ми каже), след като беше най-добрата алтернатива на MS, а и също изглеждаше да е с добро бъдеще (поддръжка).
Пак някой да ме убие тук!
Какво значение има за езика и начинаещие библиотеката бе? Я ми кажи кой е тоя дето веднага без да е програмирал почва да пише десктоп проложения?!
Делфито умря защото самите Уин се оттеглиха от него доста и се насочиха  към създаването на  С#. Все пак не беше техен продукт и и главата му се махна и познай къде отиде ;)
Ако е било толкова добро както казваш що залезе? Гледам че на жабата и няма нищо от изчезването на Слънцето! Борлант даже май вече ги няма изобщо


Титла: Re: Език за начинаещи
Публикувано от: bop_bop_mara в Jan 27, 2010, 20:45
//offtopic
първия език за който ми плащат да работя е производен на Prolog. Що се отнася до другите езици, Prolog е доста различен. Изисква по друг начин на "мислене". Мислене на логическо ниво. Има нещо много елегантно в програмите писани на пролог, може би защото това се доближава до голяма степен на начина по който действа мозъка ни. Сега, три години по късно забелязвам, че ми е все по трудно да пиша програми на нещо "нормално"
И сега какво, да уча ли за изпита, или да си пазя досегашните идеологии ;)
Шегувам се, интересно е наистина да видиш други стилове за програмиране, винаги има по нещо полезно.


Титла: Re: Език за начинаещи
Публикувано от: mat в Jan 29, 2010, 16:08
Пак някой да ме убие тук!
Какво значение има за езика и начинаещие библиотеката бе? Я ми кажи кой е тоя дето веднага без да е програмирал почва да пише десктоп проложения?!
Човека дето почна темата не е начинаещ и останах с впечатлението, че се интересува не просто от език, а от стабилен език, на който после и да работи. А и самата тема тръгна в тази посока.
Той защо си избра Java? Че кой почва да учи програмиране от Java? Избра го заради библиотеката и заради възможността да си намери работа по-натам.
Затова за мен библиотеката има значение. За каква да уча C++, ако за него (примерно) няма никаква свястна библиотека? И обратно - ако се чудя от кой език да започна защо да не проверя кой има стабилна библиотека и подръжка?

И последно - защо не го посъветва да се захване отново с Делфи? Това е супер език за начинаещи (Паскал-а). Защо? Заради това, че е умрял - нали? Заради поддръжката, заради библиотеката дето никой вече не я поддържа. Видя ли сега че има връзка?


Титла: Re: Език за начинаещи
Публикувано от: tyuio в Jan 29, 2010, 16:45
Просто не съм стгласен че библиотеката е важна за знаенето на някой език. Айде да кажем че програмирам на С и отивам във фирма дето ползва интелския компилатор а след 6 месеца в такава дето ползва гцц? Какво тогава?!


Титла: Re: Език за начинаещи
Публикувано от: shoshon в Jan 29, 2010, 18:06
Просто не съм стгласен че библиотеката е важна за знаенето на някой език. Айде да кажем че програмирам на С и отивам във фирма дето ползва интелския компилатор а след 6 месеца в такава дето ползва гцц? Какво тогава?!
Тогава говорим за различна имплементация на едно и също нещо :)
Поздрави от мене. Аз препоръчвам или C# или Java.


Титла: Re: Език за начинаещи
Публикувано от: Lord Bad в Jan 29, 2010, 23:25
От всички C++ библиотеки Qt сигурно е една от най-маловажните. Това, че се ползва здраво от KDE и разни мобилни приложения хич не я прави манна небесна... И какво по дяволите значи "библиотеката на езика" - за стандартната библиотека става дума??? Защото на всеки език има написани бая библиотеки... Когато говорим за стандартна библиотека малко езици могат да се мерят с това, което има за Java и .NET...
Общността около един език е почти толкова важна, колкото и самия език. За мен никой език няма по-жива, динамична, активна и развиваща се общо от тази на Java. Езикът като цяло не е нищо кой знае какво сравнен с Lisp или Ruby, но общността му е просто невероятна и допринася много за това въпреки минусите си Java да доминира глобално в последните години.