Skip to content

Latest commit

 

History

History
120 lines (73 loc) · 16.1 KB

chapter-0-preface.md

File metadata and controls

120 lines (73 loc) · 16.1 KB

Предговор

Книгата "Основи на програмирането" е официален учебник за курса "Programming Basics" в Софтуерния университет (СофтУни): https://softuni.bg/courses/programming-basics. Книгата запознава читателите с писането на програмен код на начално ниво (basic coding skills), работа със среда за разработка (IDE), използване на променливи и данни, оператори и изрази, работа с конзолата (четене на входни данни и печатане на резултати), използване на условни конструкции (if, if-else, switch-case) и цикли (for, while, do-while, foreach). Използват се езикът за програмиране C# и средата за разработка Visual Studio. Обхванатият учебен материал дава базова подготовка за по-задълбочено изучаване на програмирането и подготвя читателите за приемния изпит в СофтУни.

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

За Софтуерния университет (СофтУни)

Софтуерният университет (СофтУни) е най-мащабния учебен център за софтуерни инженери в България. През него преминават десетки хиляди студенти всяка година. СофтУни отваря врати през 2014 г. като продължение на усилията на Светлин Наков масирано да изгражда качествени софтуерни специалисти чрез истинско образование, което комбинира фундаментални знания със съвременни софтуерни технологии и много практика.

Софтуерният университет дава качествено образование, професия, работа и възножност за изкарване на бакалавърска диплома за програмисти, софтуерни инженери и ИТ специалисти. СофтУни изгражда изключително успешно трайна връзка между образование и индустрия, като си сътрудничи със стотици софтуерни фирми и осигурява работа и стажове на своите студенти и предоставя качествени специалисти за софтуерната индустрия.

Безплатните курсове по програмиране в СофтУни

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

Курсът има за цел да ви запознае с основните логически концепции от света на софтуерната разработка, които ще можете да приложите при всеки един език. Това включва типове данни, променливи, условни конструкции, цикли и много други любопитни начини за изграждане на програмна логика. Обучението е изключително практически насочено, което означава, че силно ще се набляга на упражнения, а вие ще имате възможността да приложите знанията си дори още докато ги усвоявате!

Judge системата за проверка на задачите

СофтУни Judge системата представлява автоматизирано тестване на задачи чрез поредица от тестове, извършващо се през Интернет. Предаването и проверката на задачите се извършва в реално време. Всеки успешно преминат тест дава предвидените за него точки. За всяка задача системата пази най-високия постигнат резултат. Ако качите решение с грешен код или по-слаб резултат от предишното ви изпратено, системата няма да ви отнеме точки. Изходните резултати на вашата програма се сравняват от системата символ по символ. Всеки излишен символ, липсваща запетайка или интервал ще доведе до 0 точки на съответния тест. Изходът, който Judge системата очаква, е описан във всяка задача и към него не трябва да се добавя нищо повече.

Пример: Ако в изхода се изисква да се отпечата число (напр. 25), не извеждайте описателни съобщения като „The result is 25“, а отпечатайте точно каквото се изисква (само числото).

Системата е достъпна от https://judge.softuni.bg/. За вход използвайте автентикацията си от сайта https://softuni.bg/

Официалeн сайт на книгата

Книгата може да бъде намерена и в Интернет на адрес: https://csharp-book.softuni.bg

Форум за вашите въпроси

Задавайте вашите въпроси тук: https://softuni.bg/forum

Официална FB група на книгата

// TODO

Как се става програмист?

Относно концепция "Как се става програмист" смятаме, че има 4 основни групи умения, които всички програмисти трябва да имат (както сега, така и за в бъдеще):

Умение #1 – Да кодите (20%)

Да се научите да кодите формира около 20% от минималните умения на програмиста.

  • работа с променливи, проверки, цикли
  • ползване на функции/методи/обекти
  • работа с данни: масиви, списъци, хешове

Езикът за програмиране няма значение за това умение!

Умение #2 – Алгоритмично мислене (30%)

Алгоритмичното (логическо, инженерно, математическо) мислене формира около 30% от минималните умения на програмиста.

  • развива се чрез решаване на много (1000+) задачи по програмиране
  • помагат физика, математика и/или подобни науки (но не са задължителни!)
  • способността да решавате задачи е изключително важна за програмиста

Езикът за програмиране няма значение и за това умение!

Умение #3 – Фундаментални знания за професията (25%)

Фундаментални знания и умения за програмирането и разработката на софтуер и компютърните науки формират около 25% от минималните умения на програмиста.

  • ООП – обектно-ориентирано програмиране: класове, обекти, наследяване, полиморфизъм, абстракция
  • функционално програмиране - ламбда функции, функции от по-висок ред
  • бази данни - SQL, релационни, нерелационни
  • софтуерното инженерство - сорс контрол системи (Git), управление на задачи, софтуерен дизайн, архитектури, управление на проекти
  • уеб технологии - HTML, CSS, JS, HTTP, DOM, AJAX, REST и т.н.
  • мрежово програмиране - мрежови протоколи, мрежова комуникация
  • паралелно програмиране и асинхронност
  • структури от данни и алгоритми

Езикът за програмиране няма значение и за това умение!

Умение #4 - Езици за програмиране и софтуерни технологии (25%)

Езиците за програмиране и технологиите за софтуерна разработка формират 25% от минималните умения на програмиста. За тези умения вече езикът за програмиране има значение.

  • Обърнете внимание: само за тези 25% от професията има значение езикът за програмиране!
  • За останалите 75% от уменията няма значение езикът и тези умения са устойчиви във времето и преносими между различните езици и технологии.

Примерни често използвани езици и технологии (software development stacks):

  • C# + ООП, ФП, класовете от .NET + база данни SQL Server, Entity Framework, ASP.NET MVC, HTTP + HTML + CSS + JS + DOM + jQuеry
  • Java + Java API classes + ООП + ФП + бази данни + MySQL + HTTP, уеб програмиране + HTML + CSS + JS + DOM + jQuery + JSP/Servlets + Spring MVC или Java EE / JSF
  • PHP + ООП + бази данни + MySQL + HTTP, уеб програмиране + HTML + CSS + JS + DOM + jQuery + Laravel / Symfony / друг MVC framework за PHP
  • JavaScript (JS) + ООП + ФП + бази данни + MongoDB, MySQL + HTTP, уеб програмиране + HTML + CSS + JS + DOM + jQuery + Node.js + Express + Angular + React
  • Python + ООП + ФП + бази данни + MongoDB, MySQL + HTTP, уеб програмиране + HTML + CSS + JS + DOM + jQuery + Django
  • C++ + ООП + STL + Boost + native development + бази данни + HTTP + други езици
  • Swift + MacOS + iOS, Cocoa + Cocoa Touch + XCode + HTTP + REST + други езици

Езикът за програмиране няма значение

  • Разликата между езиците за програмиране и по-точно в уменията на програмистите на различните езици и технологиите от тяхната екосистема, е в около 10-20% от уменията.
  • Всички програмисти имат около 80-90% еднакви умения, които не зависят от езика!
  • Колкото повече езици и технологии владеете, толкова по-бързо учите нови и толкова по-малко усещате разлика между тях.

Можем да заключим, че езикът за програмиране почти няма значение!! Има значение да се научите да кодите (20%), да се научите да мислите алгоритмично и да решавате проблеми (30%), да имате фундаментални знания по програмиране и компютърни науки (25%) и да владеете конкретен език за програмиране и технологиите около него (25%).

Авторски колектив

Настоящата книга е разработена от широк авторски колектив от доброволци, които отделиха от своето време, за да ви подарят тези систематизирани знания и насоки при старта в програмирането. Списък на всички автори и редактори (по азбучен ред): Aлександър Кръстев, Александър Кирилов, Ангел Димитриев, Васко Викторов, Венцислав Петров, Даниел Цветков, Димитър Татарски, Димо Димов, Диян Тончев, Елена Роглева, Жулиета Атанасова, Захария Пехливанова, Искра Николова, Калин Примов, Кристиян Памидов, Любослав Любенов, Николай Банкин, Николай Димов, Павлин Петков, Петър Иванов, Росица Ненова, Руслан Филипов, Светлин Наков, Стефка Василева, Теодор Куртев, Тоньо Желев, Християн Христов, Христо Христов, Цветан Илиев, Юлиан Линев, Яница Вълева. Главен двигател и ръководител на проекта е д-р Светлин Наков, който е и основен идеолог и създател на учебното съдържание от курса "Основи на програмирането" в СофтУни, който е използван за основа на книгата.

Защо избрахме езика C#?

Избрахме езика C#, защото е съвременен език за програмиране от високо ниво и същевременно е подходящ за начинаещи. Като употреба е широкоразпространен, съответно дава много перспективи за развитие. Синтаксисът му е сравнително елементарен, което от своя страна го прави лесен за научаване.

Лиценз

Книгата се разпространява безплатно в електорнен формат под отворен лиценз CC-BY-NC-SA.