Ако искате да се захванете сериозно с програмиране, попаднали сте на правилната книга. Наистина! Това е книгата, с която можете да направите първите си стъпки в програмирането. Тя ще ви даде солидни основи от знания, с които да поемете по дългия път на изучаване на съвременните езици за програмиране, платформи и технологии за разработка на софтуер. Това е книга за програмиране, която учи на фундаменталните концепции за разработка на компютърни програми, които не са се променили съществено през последните 15 години.
Не се притеснявайте да прочетете тази книга, дори Java да не е езикът, с който искате да се занимавате. С който и друг език да продължите по-нататък, знанията, които ще ви дадем, ще ви останат трайно, защото тази книга ще ви научи да мислите като програмисти. Ще ви покажем как да пишете програми, с които да решавате практически задачи по програмиране, ще ви научим да измисляте и реализирате алгоритми и да ползвате различни структури от данни.
Колкото и да ви се струва невероятно, базовите принципи на писане на компютърни програми не са се променили съществено през последните 15 години. Езиците за програмиране се променят, технологиите се променят, средствата за разработка се развиват, но принципите на програмирането си остават едни и същи. Когато човек се научи да мисли алгоритмично, когато се научи инстинктивно да разделя проблемите на последователност от стъпки и да ги решава, когато се научи да подбира подходящи структури от данни и да пише качествен програмен код, тогава той става програмист. Когато придобиете тези умения, лесно можете да научите нови езици и различни технологии, като уеб програмиране, бази от данни, HTML, XML, SQL и още стотици други.
Тази книга е именно за това да ви научи да мислите като програмисти, а езикът Java е само един инструмент, който може да се замени с всеки друг съвременен език. Това е книга за програмиране, а не книга за Java! Тя ще ви даде концепции за разработка на компютърни програми, а не просто някакви знания за един конкретен програмен език.
За кого е предназначена тази книга?
Тази книга е за начинаещи. Тя е предназначена за всички, които не са се занимавали до момента сериозно с програмиране и имат желание да започнат. Тази книга започва от нулата и ви запознава стъпка по стъпка с основните на програмирането. Тя няма да ви научи на всичко, което ви трябва, за да станете софтуерен инженер и да работите в софтуерна фирма, но ще ви даде основи, върху които да градите технологични знания и умения, а с тях вече ще можете да превърнете програмирането в професия.
Ако никога не сте писали компютърни програми, не се притеснявайте. Винаги има първи път. В тази книга ще ви научим на програмиране от нулата. Не очакваме да знаете и можете нещо предварително. Достатъчно е да имате компютърна грамотност и желание да се занимавате с програмиране. Останалото ще го прочетете от тази книга.
Ако вече можете да пишете прости програмки или сте учили програмиране в училище или в университета или сте писали програмен код с приятели, не си мислете, че знаете всичко! Прочетете тази книга и ще се убедите колко много неща сте пропуснали. Книгата е за начинаещи, но ви дава концепции, които дори някои програмисти с опит не владеят. По софтуерните фирми са се навъдили възмутително много самодейци, които, въпреки, че програмират на заплата от години, не владеят основите на програмирането и не знаят какво е хеш-таблица, как работи полиморфизмът и как се работи с битови операции. Не бъдете като тях! Научете първо основите на програмирането, а след това технологиите. Иначе рискувате да останете осакатени като програмисти за много дълго време (а може би и за цял живот).
Ако път имате опит с програмирането, за да прецените дали тази книга е за вас, я разгледайте подробно и вижте дали са ви познати всички теми, които сме разгледали. Обърнете особено внимание на главите "Структури от данни (линейни, дървовидни, хеш-таблици)", "Принципи на обектно-ориентираното програмиране", "Kak да решаваме задачи по програмиране?" и "Качествен програмен код". Много е вероятно дори ако имате няколко години опит, да не владеете добре работата със структури от данни, концепциите на обектно-ориентираното програмиране (включително UML и design patterns) и да не познавате добрите практики за писане на качествен програмен код. Това са много важни теми, които не се срещат във всяка книга за програмиране!
Не са необходими начални познания
Би било полезно да имате начална компютърна грамотност, тъй като няма да обясняваме какво е файл, какво е твърд диск, какво е мрежова карта, как се движи мишката и как се пише на клавиатурата. Очакваме да знаете как да си служите с компютъра и как да ползвате Интернет.
Препоръчва се читателите да имат някакви знания по английски език, поне начални. Всичката документация, която ще ползвате ежедневно, и почти всички сайтове за програмиране, които ще четете постоянно, са на английски език. В професията на програмиста английският е просто задължителен. Колкото по-рано го научите, толкова по-добре.Какво обхваща тази книга?
Настоящата книга обхваща основите на програмирането. Тя ще ви научи как да дефинирате и използвате променливи, как да работите с примитивни структури от данни (като например числа), как да организирате логически конструкции, условни конструкции и цикли, как да печатате на конзолата, как да ползвате масиви, как да работите с бройни системи, как да дефинирате и използвате методи и да създавате и използвате обекти. Наред с началните познания по програмиране книгата ще ви помогне да възприемете и малко по-сложни концепции като обработка на символни низове, работа с изключения, използване на сложни структури от данни (като списъци, дървета и хеш-таблици), работа с текстови файлове и дефиниране на собствени класове. Ще бъдат застъпени в дълбочина концепциите на обектно-ориентираното програмиране като утвърден подход при съвременната разработка на софтуер. Накрая ще се сблъскате с практиките за писане на висококачествени програми и с решаването на реални проблеми от програмирането. Книгата излага цялостна методология за решаване на задачи по програмиране и въобще на алгоритмични проблеми и показва как се прилага тя на практика с няколко примерни теми от изпити по програмиране. Това е нещо, което няма да срещнете в никоя друга книга за програмиране.
Въпреки големия брой автори, съавтори и редактори, стилът на текста в книгата е изключително достъпен. Съдържанието е представено в добре структуриран вид, разделено с множество заглавия и подзаглавия, което позволява лесното му възприемане, както и бързото търсене на информация в текста.
Настоящата книга е написана от програмисти за програмисти. Авторите са действащи софтуерни разработчици, хора с реален опит както в разработването на софтуер, така и в обучението по програмиране. Благодарение на това качеството на изложението е на много високо ниво.
Всички автори ясно съзнават, че примерният сорс код е едно от най-важните неща в една книга за програмиране. Именно поради тази причина текстът е съпроводен с много, много примери, илюстрации и картинки.