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

Програмиране => Общ форум => Темата е започната от: XpucToBa в Sep 15, 2012, 13:18



Титла: Как да започна с програмирането?
Публикувано от: XpucToBa в Sep 15, 2012, 13:18
Здравейте! Видях, че тука има теми със въпроси като моите и реших и аз да си пусна една тема за да ми помогнете малко. Прочетох ето тази тема: http://www.linux-bg.org/forum/index.php?topic=35348.0 и честно казано почти същите запитвания като моите. Та аз съм на 13 и искам да се занимавам с програмиране. Прочетох сигурно 100 теми по този въпрос, но за съжеление ме объркаха тотално. Едни казват започни направо с C++ други казват, че са трудни по-добре да започнем с Pascal и т.н.. Аз реших първо да започна с C защото видях доста отзива като например: " Ще е хубаво да започнеш с C, а след това с C++ защото ако започнеш с C++ ще ти е доста трудно.. " и т.н.. Мислех да кандидатсвам след 7ми клас в МГ ,, Баба Тонка " със Математика и Информатика.. Та искам да ми кажете това да започна с C и след това да премина към C++ добро решение ли е? И може да ми препоръчате някаква книга за C като за начинаещ, но желателно е да не е онлайн.. Прегледах и това: http://forums.bgdev.org/index.php?showtopic=591, но книгите са толкова много, че не знам коя да си поръчам.. Ако темата ми е в грешен раздел, моля да ме извините.  :)


Титла: Re: Как да започна с програмирането?
Публикувано от: v13 в Sep 15, 2012, 14:14
Да започнеш с C и после да минеш на C++ си е чиста загуба на време. Отделно у някой свикнали да пишат първоначално на C, писането им на код на C++ е невероятен сбиртак от двата.


Титла: Re: Как да започна с програмирането?
Публикувано от: borovaka в Sep 15, 2012, 14:49
Първо добре дошла във форума. По мое мнение е най-добре да започнеш точно със C и C++, никакъв Паскал. Повечето езици които се използват масово в момента са точно C style, и ще можеш да се ориентираш по-лесно. Другият вариант който мога да ти препоръчам е java, макар, че там трябва да почетеш за ООП преди да започнеш. Има и други варианти примерно PHP/JavaScript, но мисля, че е по-добре отначало да се започне с някой типизиран език, за да придобиеш обща представа за нещата.
Успех ти желая.

//offtopic @v13 какво точно имаш в предвид ... Цялата дефиниция на C влиза в C++ и не е нищо лошо да ползваш C header-ите когато пишеш C++. Ти искаш да я хвърлиш директно на обектния модел на CPP-то ли?


Титла: Re: Как да започна с програмирането?
Публикувано от: Oxy в Sep 15, 2012, 15:48
Аз като ти чета така темата, препоръчвам да се захванеш с нещо като асемблер примерно... Има едно нещо MiMa се казва, ама още няма симулатор сякаш може да пишеш за него(стои за минмале машине)... ако искаш пък да си моден дръпни МИПС симулатора Спим и почвай... може да пробваш и примерно някви други неща като джава байт код такива неща... Така се става истински програмист... не ги слушай тия джаваджии и Ц++съри.. ако държиш за някакви езици от високо ниво може да пробваш Ada... чувам била ДОД и много модна :) Друго също дето било модно било Пролог. Ако много държиш да си Уеп-програмист може да почнеш да учиш джава и Джейбос... и там някво ЕсКуЕл щяло да требе да учиш.. общо взето вземи има бол менюали, особено за асембли(мога да ти дам линкове според зависи какви езици говориш)


Титла: Re: Как да започна с програмирането?
Публикувано от: borovaka в Sep 15, 2012, 16:04
//off
@Oxy само не можах да разбера, защо се ебав*ш ... Като си на 13 е напълно нормално да питаш нещо, че и да не си де. Ако има мерак да се занимава да почва, пък ако ентусиазма умре има време да се преориентира.


Титла: Re: Как да започна с програмирането?
Публикувано от: neter в Sep 15, 2012, 16:28
Работата ми през годините досега ме е сблъсквала с доста езици и опитът от това ме е довел до заключението, че има 3 основни стъпки, по които трябва да мине човек, за да се научи да програмира добре на даден език:
Стъпка 1 - Научаване на основната логика за програмиране. Тук имаме 2 пътя, по които може да се поеме - процедурно или логическо програмиране. Езиците, които си изброила (поправи ме, ако бъркам рода), се използват за процедурно програмиране, такова програмиране е използвано в масово разпространените в момента операционни системи, програми и сайтове. При тази стъпка езикът, с който изпълняваш стъпката, не е от значение (можеш да си избереш който и да е, но ако решиш да се занимаваш с процедурно програмиране, избери език за такова програмиране), езикът ще ти служи само като инструмент за разучаване какво са и за какво се използват променливи, константи, цикли, условни оператори, функции и т.н., елементите, които изграждат процедурно написания код. Всички процедурни езици ги използват и във всички процедурни езици служат за едни и същи неща, като в различните езици имат само някои разлики в синтаксиса на изписване, но точният синтаксис не е част от тази стъпка. В тази стъпка трябва да научиш логиката, по която се изгражда процедурният код, а тази логика е една и съща във всички процедурни езици. Като завършек на тази стъпка можеш да научиш разликата между двете основни разделения на процедурното програмиране - функционалното и обектно-ориентираното програмиране. Това са фундаментални (основни) логики, които са едни и същи във всички процедурни езици, само дето не всички езици поддържат и двете логики. Не се ограничавай в езика, учи самата логика на писане. Точният начин на изписване не е обект на тази стъпка. Бих ти препоръчал първо да се занимаеш с функционалното програмиране, а след това с обектно-ориентираното, тъй като функционалното програмиране се съдържа в обектно-ориентираното, но обектно-ориентираното не се съдържа във функционалното. Т.е., научавайки функционалното програмиране ще си улесниш след това научаването на обектно-ориентираното програмиране, вместо да ги учиш и двете наведнъж, ако започнеш с обектно-ориентирано. Научиш ли добре логиките в тази стъпка 1, получаваш летящ старт за научаването на който и да е друг език;
Стъпка 2 - Научаване синтаксиса на основните елементи (задаване на променливи, if-else, while, for...), които споменахме в стъпка 1. Тук вече можеш да си избереш език, тъй като от тази стъпка започваш усъвършенстването си в даден език, но можеш да гледаш и няколко езика едновременно, за да си избереш езика, синтаксисът на който ще ти хареса най-много. След като от стъпка 1 знаеш за какво се използват тези основни елементи, лесно ще научиш синтаксиса им за който и да е език, а и да не го знаеш за даден език, бързо можеш да го видиш с търсене в Интернет (например "if c++", "while perl", "variable php" и т.н.). Тази стъпка ще ти даде възможност сама да си избереш език/езици, с които да тренираш изписването на начални функционалности. С тази стъпка започваш реално да програмираш, като доброто ѝ научаване ще ти даде летящ старт след това да се специализираш в който си поискаш език;
Стъпка 3 - Задълбочаване в синтаксиса. Това е стъпката, в която ставаш специалист по програмиране на даден език. Тук вече задължително си избираш език, в които искаш да специализираш. Аз съм на мнение, че всеки език е с целите си. Не мисля, че е за момента съществува език, на който е добре да се пише всичко, от малки скриптове до големи програми и операционни системи. За да си избереш език, в който искаш да специализираш, първо трябва да си избереш за какво искаш да го ползваш. Изборът е различен в зависимост от насочеността на кода - Интернет или приложен софтуер, едноплатформеност или мултиплатформеност, високо или ниско ниво в комуникацията с операционната система и/или хардуера... общо взето, първо трябва да си определиш функционалността на това, което ще пишеш, а след това езика, на който ще го пишеш. Естествено, изборът не те задължава, така че в някой момент съвсем спокойно може да решиш да започнеш стъпка 3 отначало с друг език. След като в стъпка 2 си се научила на основен синтаксис в езиците и как да търсиш синтаксис в документацията, продължаваш с писането на все по-сложен код, като четеш за нови функции в документацията на дадения език.

Накратко. В стъпка 1 езикът е без значение и хващането на даден език е колкото за някакво практически опити на научената логика. В стъпка 2 дори е препоръчително да разгледаш основния синтаксис на няколко езика, за да си положиш добра основа за избор на език за конкретни цели, когато се наложи. В стъпка 3 идват конкретните цели, където първо си избираш в писането на какви приложения искаш да специализираш, след което си избираш подходящ език за тях, в който да се усъвършенстваш.
Та... ако сега започваш стъпка 1, хвани който и да е език. Ако сега започваш стъпка 2, разцъкай всички езици, които ти се сторят интересни (ето ти един списък тук ($2)). Ако сега започваш стъпка 3, първо си изясни какво смяташ да програмираш и след това питай себе си и нас за език ;)


Титла: Re: Как да започна с програмирането?
Публикувано от: The_Ghosts в Sep 15, 2012, 17:10
Вие нещо май се гаврите с момчето ...... За 13 годищен един скриптов език като PHP/Perl/Python/Ruby ще му е предостатъчен да се запознае с общите идеи на програмирането ( от горе изброените ти препоръчвам Perl или Python ). Макар че нищо не му пречи да почне с нещо от рода на Java или C* , но си зависи от багажа му.


Титла: Re: Как да започна с програмирането?
Публикувано от: XpucToBa в Sep 15, 2012, 17:23
Благодаря за бързите отговори.  :) @The_Ghosts момиче съм. Исках да започна със C, защото предполагам, че ще ми е по лесно да изучавам по-нататък и C++. Може ли мнение за тези книги "Програмният език C" и "Алгоритми на С" ? Добри ли са за начинаещи като мен? :)


Титла: Re: Как да започна с програмирането?
Публикувано от: jet в Sep 15, 2012, 17:36
Както neter  е споменал - универсален език няма. Трябва да решиш какъв тип програми искаш да пишеш и по това да избереш езика. Ако пишеш драйвери, кърнъл модули или десктоп приложения - php няма да ти свърши никаква работа колкото и добре да го научиш. Ако пишеш уеб приложения- С/С++ няма да е най-удачния избор.


Титла: Re: Как да започна с програмирането?
Публикувано от: XpucToBa в Sep 15, 2012, 17:40
@jet насочила съм се към десктоп приложения именно затова избрах C/C++ ;)


Титла: Re: Как да започна с програмирането?
Публикувано от: kifavi8024 в Sep 15, 2012, 17:49
Вие нещо май се гаврите с момчето ...... За 13 годищен един скриптов език като PHP/Perl/Python/Ruby ще му е предостатъчен да се запознае с общите идеи на програмирането ( от горе изброените ти препоръчвам Perl или Python ). Макар че нищо не му пречи да почне с нещо от рода на Java или C* , но си зависи от багажа му.

А ти май не четеш. Тя е момиче, а не момче...

Относно темата: И според мен е добра идея да започнеш с нещо по-просто. Под по-просто имам предвид, че синтаксиса и самата структура на езика е по-лесна за възприемане (по-четима на пръв поглед). Т.е. за да ти е по-лесно, трябва да започнеш с по-лесен език за учене.

За 13 годишна не смятам, че С е най-лесният език или най-добрият избор. Езика наистина е достатъчно добър и си заслужава да го изучаваш, но като почнат да четеш думички като препроцесор, референция, указател, адрес на клетка в паметта и ще почнеш да си скубеш косите :D

И то не защото е не е обяснено достатъчно добре, а защото го няма достатъчно добре обяснено на български. Има една много добра книга за начинаещи C програмисти - но за жалост е написана на английски. Колкото и да си умна, според мен на 13 години още не сме научили родният си език, какво остава да се учим на чужд език. Не казвам че е невъзможно, но все пак...
Всичко зависи от това, колко си предразположена към логическо мислене. Ако схващаш бързо и не се плашиш от сложните неща, няма проблем да започнеш от езика С. Но ако това не е така, по-добре започни от някой по-лесен език.

Ако въпреки мнението ми, искаш да започнеш с изучаване на С, аз ти предлагам да започнеш с най-добрата книга за начинаеши: Head First C ($2)


Аз бих ти предложил следното нещо. От следните примери, които ще видиш по-надолу. Кой от тях ти се вижда най-разбираем? Кой от тях ти е най-интересен? - т.е. не го разбираш напълно, но ти е интересно да разбереш какво прави точно това, което ти е непонятно:

Езика С:
Код
GeSHi (C):
  1. #include <stdio.h>
  2.  
  3. int main(void)
  4. {
  5.    puts("Hello world!");
  6. }

Езика С++:
Код
GeSHi (C++):
  1. #include <iostream>
  2.  
  3. int main()
  4. {
  5.    std::cout << "Hello, World!\n";
  6. }

Езика C#:
Код
GeSHi (C#):
  1. class ExampleClass
  2. {
  3.    static void Main()
  4.    {
  5.        System.Console.WriteLine("Hello, world!");
  6.    }
  7. }

Езика Java:
Код
GeSHi (Java):
  1. public class HelloWorld {
  2.   public static void main() {
  3.       System.out.println("Hello world!");
  4.   }
  5. }

Езика Python 3:
Код
GeSHi (Python):
  1. print("Hello World")

След като отговориш на тези два въпроса, ще е напълно ясно към кой език ще е най-добре да се насочиш. Просто си помисли малко по-добре и отговори на тези два въпроса.

Има и един последен въпрос, който също е много важен:
Ти като програмист какви програми искаш да правиш, какви действия искаш да извършват програмите ти. Т.е. да са примерно програми като браузъра ти, като офиса ти, като skype-a, или да са като сайтове в които влизаш, или като операционната система която ползваш в момента?

П.П: Щом си се насочила към десктоп приложения...
Това говори достатъчно.
Премахвам ненужните езици от горния списък.


Титла: Re: Как да започна с програмирането?
Публикувано от: XpucToBa в Sep 15, 2012, 18:08
!ntel не се плаша от сложни неща и схващам нещата наистина бързо. Обичам предизвикателствата и мисля, че ще се справя със C. Имам време и желание за това и наистина искам да се занимавам с програмиране. За едно "Здравей Свят!" гледам, че кодът на Python 3 е най-кратък, но не ми е най-интересен вярно кодът на C има малко повече за писане, но ми е доста по-интересно. Ами програмите които искам да правя са като браузъра, офис програми, програми като скайп, но НЕ и сайтове :) Общо взето бих правила всякакви програми, но не и сайтове. Преди година 2-3 месеца само се занимавах със HTML, не научих всичко, но знам някои основни кодове. Книгата която си ми дал е хубава, но за съжеление не съм научила целия английски език. Затова исках някоя българска книжка.


Титла: Re: Как да започна с програмирането?
Публикувано от: kifavi8024 в Sep 15, 2012, 18:37
Ами за съжаление на български надали има нещо свястно написано - това е жалката истина...
Тук начинаещите наистина са доста ущетени.

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

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

В тази книга има още един много важен подход - примери с въпроси и отговори. Така ти показват как е правилно да мислиш. Задаваш си даден въпрос и му отговаряш. А не просто да ти напишат 1000 страници текст и нито помен от въпроси.

Напредналите може и да са свикнали да си задават въпроси, но тук говорим за начинаещи. И книгата цели да те научи, точно на това - да мислш без значение от това в каква ситуация си.
Ако се научиш да мислиш правилно, няма да има език, който да е труден за теб - защо?
Защото този принцип на въпроси и отговори е приложим(универсален) за всички езици.
Този принцип е като краката на една маса - масата няма как да съществува без крака...

Синтаксиса(начина/правилата за писане в езика) няма да са важни ако свикнеш да мислиш по този начин - логическият начин.
И точно това е разликата между добрите програмисти и тези които не са толкова добри (посредствени).

Всичкото това ти го казвам, защото и аз като по-малък съм минал през това. И се надявам, че като ти кажа това, след време ще се увериш, че съм бил прав. Тъпо е че няма добро четиво на български, но това не трябва да те спира, а напротив - трябва да те мотивира да научиш английски. :)

Достатъчно си млада, една или две години учене на английски няма да са ти проблем, а след това ще може да се посветиш на програмирането.

Относно книгите - не съм на 100% сигурен, че няма добра книга за начинаещи по C, но аз не съм се натъквал на такава вече 5 години, така че ако някой има информация за подобна книга, да казва веднага. Ще ми е интересно дали е превод или родно творение :)


Титла: Re: Как да започна с програмирането?
Публикувано от: bop_bop_mara в Sep 15, 2012, 19:41
Може ли мнение за тези книги "Програмният език C"
Тази си е задължително присъствие в библиотеката, все пак е писана от създателите на езика.
За алгоритмичната не знам, аз бих казала „Програмиране=++Алгоритми“ на Преслав Наков. Там има и по-леки неща (да ти развиват мисленето), и по-сериозни алгоритми (ако са ти интересни).


Титла: Re: Как да започна с програмирането?
Публикувано от: kifavi8024 в Sep 15, 2012, 19:44
Програмният език C  - това е книга за напреднали. Обясненията са много сбити и точни и се предполага, че тази книга иска да те научи на добрите практики и не е книга тип от А до Я. :)


Титла: Re: Как да започна с програмирането?
Публикувано от: bvbfan в Sep 15, 2012, 20:16
Аз започнах със С и книгата на Хърбърт Шиилдт Практически самоучител на С и според мен е най-добрата книга. В момента се занимавам със С/С++, Питон и доста по-рядко PHP, javascript, sql и мисля наистина Питон е много добър скриптов език, аз се чувствам в свои "води" също както на С/С++. Щом си се насочила към десктоп приложения може би С не е най-подходящия език, въпреки, че може да се използва на всички ОС. Проблемът е, че програмистът има пълна свобода на действие, което е колкото положителен, толкова и отрицателен аспект. Споделена памет, указатели, буфери, инициализиране на променливите проблемите могат да бъдат много и за да станеш добър програмист на С/С++ трябва четене, писане на код, дебъгване, за да се натрупа нужният знания, опит и рутина. Доста повече време и усилия ще трябва да положиш за С отколкото за Питон, Джава или С#. Има една българска книга за програмиране на C# http://www.introprogramming.info/wp-content/uploads/2011/07/Intro-CSharp-Book-1.00.pdf общо взето встъпителните страници са доста интересни от информативна гледна точна.
Цитат
Защо не C или C++?
Въпреки, че отново много може да се спори, езиците C и C++ се считат за
доста примитивни, остарели и отмиращи. Те все пак имат своето
приложение и са подходящи за програмиране на ниско ниво (например за
специализирани хардуерни устройства), но не ви съветваме да се
занимавате с тях.
На чисто C може да програмирате, ако трябва да пишете операционна
система, драйвер за хардуерно устройство или да програмирате про-
мишлен контролер (embedded device), поради липса на алтернатива и
поради нуждата да се управлява много внимателно хардуера. Този език е
морално остарял и  в никакъв случай не ви съветваме да започвате да
учите програмиране с него. Производителността на програмиста при
разработка на чисто  C е в пъти по-ниска отколкото при съвременните
езици за програмиране с общо предназначение като  C#  и  Java
. Вариант
на езика C се използва при Apple / iPhone разработчиците, но не защото е
хубав език, а защото няма свястна алтернатива. Повечето Apple-ориентирани
разработчици не харесват  Objective-C, но нямат избор да пишат на
нещо друго.
C++ е добър, когато трябва да  програмирате определени приложения,
които изискват много близка работа с хардуера или имат специални
изисквания за бързодействие (например разработка на 3D игри). За
всичко станали задачи (например разработка на уеб приложения или
бизнес софтуер) C++ е изключително неподходящ.
Не ви съветваме да се
захващате с него, ако сега стартирате с програмирането. Причината все
още да се учи C++ в някои училища и университети е наследствена, тъй
като тези институции са доста консервативни. Например международната
олимпиада по информатика за ученици (IOI)  продължава да промоцира
C++ като единствения език, позволен за използване по състезанията по
програмиране, въпреки, че в индустрията C++ почти не се използва. Ако
не вярвате, разгледайте някой сайт с обяви и пребройте колко процента
от обявите за работа изискват C++.
Езикът C++ изгуби своята популярност най-вече поради невъзможността
на него да се разработва бързо качествен софтуер
. За да пишете кадърно
на C++, трябва да сте много печен и опитен програмист, докато за C# и
Java  не е чак толкова задължително. Ученето на  C++ отнема в пъти
повече време и много малко програмисти го владеят наистина добре.
Производителността на  C++  програмистите е в пъти по-ниска от  C# и
затова C++ все повече губи позиции.
Поради всички тези причини, този
език постепенно си отива и затова не ви съветваме да го учите.
Има някои интересни мисли, но подчертаните от мен изречения са пъна лудост и безхаберие от хора, които наричат себе си програмисти. С/С++ са езиците, на които се "крепи" света, всичко качествено е написано на тях. Всички операционни системи, виртуалната машина на Джава, интерпретаторите на Питон, PHP, целият "велик" .NET фреймуорк на Майкрософт и това ще останат най-добрите езици за програмиране. Разгледай всички възможности  ;D


Титла: Re: Как да започна с програмирането?
Публикувано от: gat3way в Sep 15, 2012, 20:19
Абе защо беше това ударение на Преслав, а не Светлин ехехех :) 

P.S встъпителните страници цитирани по-горе са абсолютни глупости.

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


Титла: Re: Как да започна с програмирането?
Публикувано от: tdonev в Sep 15, 2012, 21:02
.. изтрито от автора ..


Титла: Re: Как да започна с програмирането?
Публикувано от: v13 в Sep 15, 2012, 21:08
Много хвалят Java но една програма за чат като Jitsi да ти взима около 150мб рам някак си е дразнещо. Пробвал съм Java и там наистина е много по-лесно и бързо да се напише дадено приложение, сравнено със C/C++
По принцип на жава може да се пише почти всичко. Има и добра книга на български на Наков, който повечето форумци тук не харесват поради ред причини. Доста си рекламира услугите човека и търси лапни шарани до някъде но ако се абстрахираш от това книжката става. :)
Python също е много добър и хвален език, който се компилира до байт-код подобно на Java но съществен недостатък е, че за него и до сега няма достатъчно добри среди за разработка, така наречените IDE.
Java има едни от най-добрите IDE (Eclipse, Netbeans) Това съществено улеснява начинаещия и още повече съкръщава времето за писане на код, а времето е ценно.
В Python мен ме дразни и бърканицата с версиите от 2.7 до 3... а и така не можах да свикна със специфичния синтаксис на оформяне на блоковете.
Има страшно много книги за програмиране на руски, може да се намери почти всичко.


Титла: Re: Как да започна с програмирането?
Публикувано от: Oxy в Sep 15, 2012, 21:16
Значи книгите на Шилд ги имам тука и си подпирам вратата... просто още не съм намерил човек, когото мразя достатъчно, за да му ги оставя някъде по пътя, та да ги намери да си бие главата в тях после...
Сега по същество: Ако не ти се занимава много със стекове и прочие учи Жаба. Жабата е много хубаво конструиран език с който наистина ще се научиш да работиш с обекти. Книги не за Жаба не мога да ти препоръчам, освен ако не ти се чете на немски... Сега за С/С++ нещата. Абе има ли някой мазохист който пише Десктоп приложения на С? Ние в университета ползваме чисто С за системно програмиране основно. Ако ще почваш с С/С++ разгледай какво е това стек, какво са регистри и разни такива неща от техническата информатика.. иначе ще има да пишеш по форумите "Защо ми дава сегментейшън ерор". Другото нещо имай предвид че С/С++ не са като Жаба Силно Типизирани. Демек можеш да правиш разни магарии (че са и полезни магарии). Ако ще учиш С ще да учиш Посикс апито или уин 32 Апито. Ако ще учиш жаба ще учиш жаба апито. Марче, вие в Софийски нямате ли някви лекции по жаба за първокурсниците да й дадеш на тази мома? Аз мога да ви дам от моите, но отново са само на немски... Евентуално може да имам нещо за С на английски, ама това ще да е.
Иначе книги: The C Programming Language е мъст хев. Друго имаше едно Unix system programming  доста добро. От там нататъка нещо кратко относно С++ и яко КТ менюала.
Жабата ако говориш немски има на Галилео компютинг - Жаба е остров една огромна книга, че даже може да си я свалиш без пари от сайта на издателя.
А да и сори, ама единственото нещо по-лошо от Питоня според мен е ПХП... Лошото е, че последно време се навъдиха толкова ПХП /*ПРОГРАМИСТИ*/, че вече ме е страх да кажа, че съм информатик... току виж някой извадил някоя ПХП книга...


Титла: Re: Как да започна с програмирането?
Публикувано от: XpucToBa в Sep 15, 2012, 21:34
Добре да приемем, че Java е доста по - добра от C/C++. Обаче C/C++ ми е по-интересно от Java...


Титла: Re: Как да започна с програмирането?
Публикувано от: kifavi8024 в Sep 15, 2012, 21:35
Карайте я малко по-кротко. Тука не сме в университета :)
Това че човек го влече програмирането, не значи че трябва да го натикате веднага на дълбокото.
Веднага почнахте да размятате дебелите книги, стековете и регистрите - още малко и асемблер ще зачекнем...

Недейте така, все едно не сте възрастни хора. Тук се търси книга за начинаещи + подходящ език за въведение в програмирането. Тук НЕ става дума за ядрена/квантова физика. Много задълбавате и излизате от смисъла на темата. Дайте малко назад, защото иначе само ще объркаме представите на момичето.

//off-topic
Ето колко ни струва образованието и цялата образователна система. Ако беше създала нужните ресурси, сега нямаше да има нужда от такива обсъждания по темата, а направо щяхме да и дадем линк към тези ресурски и готово.
Да не говорм, че имаме млади хора, които са прекрасни лектори и може да се направят страхотни презентации за истински увод в програмирането. Но въпреки това никой не се наема да направи подобно нещо...
Мит е че има много малко свестни програмисти в България - но дори това реално да е истина, това не означава, че те не са достатъчни, за да направят ресурси и учебни материали по темата.
ДА, всеки си има личен живот и пр. Но когато форумите са пълни с теми от типа "От къде да започна", мисля че е крайно време да вземем нещата в наши ръце, защото ако чакаме на образователната система - ще си останем с чакането. А както е тръгнало, може и да не останат хора, които да чакат...



Титла: Re: Как да започна с програмирането?
Публикувано от: bvbfan в Sep 15, 2012, 22:24
Имаш достатъчно време може да започнеш с обектно ориентирано програмиране и ако ти е много трудно да разгледаш друг тип. Джава никога не е бил по-добър от С++ и никога няма да бъде.


Титла: Re: Как да започна с програмирането?
Публикувано от: b2l в Sep 16, 2012, 01:09
Имаш достатъчно време може да започнеш с обектно ориентирано програмиране и ако ти е много трудно да разгледаш друг тип. Джава никога не е бил по-добър от С++ и никога няма да бъде.

Ти колко неща си писал на Java?


Титла: Re: Как да започна с програмирането?
Публикувано от: neter в Sep 16, 2012, 03:02
Имаш достатъчно време може да започнеш с обектно ориентирано програмиране и ако ти е много трудно да разгледаш друг тип. Джава никога не е бил по-добър от С++ и никога няма да бъде.

Ти колко неща си писал на Java?
Хора, не изпадайте в безполезни спорове кой език бил най-добър. Няма най-добър език, има най-подходящ език за определена цел. Колкото цели, толкова и подходящи езици. Затова и списъкът с езици е толкова дълъг. То е като земекопните инструменти от лъжицата до тази машина ($2) - с всички можеш да копаеш, но никой от тях не е най-подходящ за всички дупки. Целта определя средствата. Малките области, в които се препокриват, отново не са повод за спорове - целта има допълнителни характеристики (като наличност и бюджет), които могат да определят кой инструмент ще е най-подходящ за случая ;)


Титла: Re: Как да започна с програмирането?
Публикувано от: b2l в Sep 16, 2012, 10:35
//off

Хора, не изпадайте в безполезни спорове кой език бил най-добър.

Съгласен съм с коментара ти @neter, но предпочетох да му задам въпрос, всместо да му кажа ... изтрито ...


редакция от neter: Редактирано съгласно т.6 от правилата ($2) на форума.


Титла: Re: Как да започна с програмирането?
Публикувано от: XpucToBa в Sep 16, 2012, 11:48
Да почвам Java или да почвам C? Кое повече се тъси? C/C++ програмист или Java програмист? Защото искам да работя това. Винаги съм искала. :)


Титла: Re: Как да започна с програмирането?
Публикувано от: b2l в Sep 16, 2012, 11:53
Да почвам Java или да почвам C? Кое повече се тъси? C/C++ програмист или Java програмист? Защото искам да работя това. Винаги съм искала. :)

Започни с логиката - както ти каза @neter. Т.е. започни със задачи в които се иска пресмятане и математика.
Примерно: Извеждане числата на Фибоначи, извеждане на всички високосни години - няма значение езика. Не започвай с обектно-ориентирано програмиране, в случай, че не можеш един цикъл да напишеш. Имам един приятел, който пише на C# и ми беше казал, че за 6 месеца може да ме научи на ООП. Тогава не му повярвах, но той се оказа прав.

За това както се търси може да провериш в интернет.


Титла: Re: Как да започна с програмирането?
Публикувано от: Odido в Sep 16, 2012, 11:55
http://videotutorials-bg.com/forum/viewtopic.php?t=1504 ($2) Не се занимавай с глупости ,отвори линка и виж колко книги на български има с най-популярните езици.


Титла: Re: Как да започна с програмирането?
Публикувано от: ji в Sep 16, 2012, 12:10
Започни със "C". Ще ти даде оснава приложима във всички езици.


Титла: Re: Как да започна с програмирането?
Публикувано от: b2l в Sep 16, 2012, 12:23
Започни със "C". Ще ти даде оснава приложима във всички езици.

Да "започни със С" и ще можеш да пишеш и на prolog  ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D.


Титла: Re: Как да започна с програмирането?
Публикувано от: XpucToBa в Sep 16, 2012, 13:04
@b2l просто запитването ми беше дали да започна със C и после да мина на C++. Или пък направо да започна със C++. Видях в темата, която постнах ето това:
Цитат
Важно е да знаеш също, че от С++ лесно ще минеш на ДЖАВА. Обратното не е толкова вярно
Има ли смисъл да се минава от C++ към Java? Разбрах, че C++ е ОО, а C не е ОО. До колко е вярно не знам. Ако ще започвам направо със C++ ще разгледам онлайн книгата на Магдалина Тодорова. Не искам да започвам със задачи а направо с някакъв език.


Титла: Re: Как да започна с програмирането?
Публикувано от: Oxy в Sep 16, 2012, 13:38
Хората ти казаха има цел за всеки език. Ако искаш да пишеш десктоп приложения ще пишеш на С++ (За многоплатформеност ще се ще учиш и Посикс апито и уин32 Апито). Ако искаш да пишеш Интранет Портали ще пишеш Жаба. Ако искаш да програмираш мултиплатформено или пък за андроид пак ще пишеш жаба. Ако пък искаш да пише за Ай-* ше пишеш обжектив С. Реши какво искаш да правиш и почвай. Каквото трябваше да се каже по темата се каза.
http://www.nakov.com/books/ ей тука има за жаба и С-шарп. За С разбра на "Езика С" за С++ не знам. Съвета ми е да не четеш разни туториъли по разни сайтове, писани от мними специалисти, защото после ще си биеш главата в стената. Както се казва занаят се краде, не се дава. Визирай никой много добър, на когото му плащат 10 000 на месец(май това в бг е нереално, така че 5 000) няма да тръгне след работно време да пише туториали за да може после някви пишлеме да му подбиват цената на труда.


Титла: Re: Как да започна с програмирането?
Публикувано от: XpucToBa в Sep 16, 2012, 13:57
Значи започвам със С++, благодаря на всички отзовали се! :)


Титла: Re: Как да започна с програмирането?
Публикувано от: bvbfan в Sep 16, 2012, 17:02
Започни да четеш и след всяко нещо, което ти е станало ясно трябва да пишеш код и да тестваш. Ако има нещо неясно пишеш кода и казваш какво искаш да постигнеш, аз ще помагам.  ;)


Титла: Re: Как да започна с програмирането?
Публикувано от: tdonev в Sep 16, 2012, 19:40
.. изтрито от автора ..


Титла: Re: Как да започна с програмирането?
Публикувано от: bvbfan в Sep 16, 2012, 20:56
Само човек, който не може да се аргументира псува, аз никого не съм псувал. Изразих мнението си и мога да се аргументирам, тук не му е мястото.


Титла: Re: Как да започна с програмирането?
Публикувано от: laskov в Sep 16, 2012, 20:57
Тодоре, "колежката" е на 13 години и е най-добре да си редактираш коментара веднага, така че наистина да е в добрия тон.

Не знам дали младата госпожица все още чете темата. Ако да - има една поредица от четири учебника по информатика за VIII, IX ... класове. Смятам, че можеш да ги минеш за около два месеца. Ще се опитам да намеря подробности за учебниците и ще ги добавя.


Титла: Re: Как да започна с програмирането?
Публикувано от: borovaka в Sep 16, 2012, 21:03
@laskov Аз не ги препоръчвам учебниците за средно образование изобщо. На скоро ми се наложи да минавам един, за да си освежа речника с "понятия", за кандидат-студентския. И попаднах на много големи бисери ( на моменти плачевни ). Не съм си в къщи иначе бих цитирал :)

Колкото до C/C++ мен специално от литературата на български ми харесаха C/C++ Практически самоучител на Хърбърт Шилдт. Много по-добре представя материала според мен, за разлика от "нашумелите" книжлета на Магдалина Тодорова - които ми е много интересно госпожата, ако сама ги прочете дали няма сама да се обърка :)


Титла: Re: Как да започна с програмирането?
Публикувано от: b2l в Sep 16, 2012, 21:20
Не знам дали младата госпожица все още чете темата. Ако да - има една поредица от четири учебника по информатика за VIII, IX ... класове. Смятам, че можеш да ги минеш за около два месеца. Ще се опитам да намеря подробности за учебниците и ще ги добавя.

Абe @laskov не прочете ли по-рано, че тя написа, че не иска да решава задачи. Момичето е решило да програмира, не да смята...


Титла: Re: Как да започна с програмирането?
Публикувано от: laskov в Sep 16, 2012, 21:28
Не, не съм. Впрочем, нямах намерение да пиша ...

Та - Информатика 1-ва част ($2)
Информатика 2-ра част ($2)

Добре ще е ако някой има впечатление за тях и го сподели.


Титла: Re: Как да започна с програмирането?
Публикувано от: remotex в Sep 16, 2012, 22:21
и аз нямах намерение да пиша... но размислих
Няколко съвета на базата на моя вече почти 30 годишен опит - аз навремето започнах със Бейсик после Асемблер, Паскал, С, С++.. след това Джава, Лисп, Пролог, С# и какво ли още не

1. Добре е да се започне със С и след това С++ т.е. отдолу нагоре т.к. най-долу са Асембелер и С поне от по-разпространените езици а и по лесно се учи така инак... питайте някой дето е минавал от Джава или С# към С/С++ дали му е било лесно. Та препоръчвам за всеки начинаещ който сериозно смята да се занимава и развива в тази посока да започне със С. Книгите и материалите нямат чак такова значение - човек ако е достатъчно интелигентен с течение на времето сам ще ги отсее (има много /като бр./ хубави и много лоши) аз като почвах повечето светила навремето казваха че Бейсик бил противопоказен и т.н.

2. Това е групово или колективно занимание т.е. както и в спорта добре е човек да си намери групичка със сходни интереси инак по някое време омръзва и по едни или други причини може да се загуби интерес. Моят професионален опит е установил (изказвам лично мнение) че най-добре се работи в групи от по 3 до 5 човека или малко по-големи - ако работи сам човек случват се и грешки, ако са двама обик. (чисто психологически и като характер) единия винаги се налага затова мин. 3-ма но не повече от 10 че там почват едни проблеми с мениджмънта вече... но да не се разсейваме..
- Добре е да не се разчита само на форумите, колкото и добри да са, друго нещо си е личният контакт - някои хора успяват да те мотивират само със силата на волята си, други с професинализма си а трети ... просто гледаш да не ставаш като тях  >:D

3. След овладяване на основите на един-два езика (препоръчвам да се започне със С след това С++ след това може да се премине много лесно към кой да е друг език - обратното не винаги е вярно) ТРЯБВА да се изучат из основи и алгоритмите и структурите от данни. Тук вече може и да се премине към друг език за програмиране.

Под започване със С имам предивд... навремето аз като почвах езикът имаше всичко на всичко 26 оператора само - напоследък май са повечко но колко да са по-малко от 30 (някои азбуки имат повече букви) та имам предвид дори и само да се прочетат една-две книги ей така като художествена литература макар че е хубаво и по 1-2 примера да се пробват колкото да се хваната основите - оператори, функции, цикли, масиви и пр. без да се задълбава - да се положат основите дето се вика. После постепенно с навлизането в алгоритмите и структурите от данни да се премине от С към С++ (хубаво е поне по веднъж да се опита човек сам да си напише по една от основните структури от данни сам на С ако му е по-лесно със статични масиви ако е по-сериозен може да опита динамични - стек, списък, опашка) След това следва запознаване със някоя по-известна библиотека като STL, boost, Qt След това вече няма проблеми с преминаване към който и да е друг език. изкл. SQL, Prolog и подобни където основната им парадигма е различна.

П.П. И обратния подход е възможен но е много по-труден (да не кажа на практика невъзможен) да се почне от високото ниво и да се върви надолу към желязото - познавам единици които не толкова че са успели но не се предадоха и се мъчиха докрай (някой неща все-още на са им много ясни но поне знаят какво не знаят или дет се вика дотолкова че да не се занимават с някои неща) ... познавам доста "колеги" започнали от високо с летящ старт със Джава или С# направо - тези които се опитаха по-късно да наваксат основните липси на ниско ниво са добре а другите... като не им го поддържат библиотеките на високо ниво и по-простите направо отсичат "Това не може да се направи" по-хитрите пък търсят third party библиотечка нещо я да краднат някой комерсиален продукт дори па макар и кракнат само и само да не се изложат и да скърпят нещо - ама че било бавно и т.н. прехвърлят вината върху техниката и как плачела за обновяване.

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

А особено по-младите 12-13 годишни дечурлига (не се засягайте от израза) и аз запчонах на 12 г. още дете - не се знае след още 10-12 г. дали ще има Джава и/ли С# но С/С++ ще има. Напоследък даже и Майкрософт осъзнават грешката т.е. най-големия си пропуск със С# и .Net платформата - липсата на скорост - затова обръщат леко посоката и ще се опитат да наваксат със С++ понеже хората няма да си напишат сървърите на С# че ще са много бавни... представете си само Апаче сървър на C#.  ;D

Microsoft's 'Casablanca': Taking C++ to the cloud
http://msdn.microsoft.com/en-us/devlabs/casablanca.aspx
http://www.zdnet.com/blog/microsoft/microsofts-casablanca-taking-c-to-the-cloud/12592

Колкото ми се удава - толкова.



Титла: Re: Как да започна с програмирането?
Публикувано от: bvbfan в Sep 16, 2012, 22:58
@remotex, хората с голям опит почти винаги препоръчват да се започне с асемблер или С. Според мен, с по-малко от 1/3 от твоят опит, мисля, че е възможно да се стартира от нулата със С# или Джава и без да се занимаваш с ниско ново, което ще спести доста време на учащия.


Титла: Re: Как да започна с програмирането?
Публикувано от: remotex в Sep 17, 2012, 00:05
Към колегата по-горе:

Първо зависи на какво ниво смята да се занимава човек - ако иска да става професионалист не е добре да се прескачат цели етапи, ако ще е на парче може да се подхване кое да е, ако ще и последния писък на модата дето днес го има утре го няма напр. "Го".

Второ - мисля че въпросът е оставен леко некоректно - разликата между С/С++ е около 10тина оператора а между С++ и С# е още по-малко... ако ще си ги мерим откъм библиотеки това вече е друго... и точно поради това е добре да се почне с нещо дето вече се е наложило още го има а и обозримото бъдеще е го има, а като навлезе в материята човек вече може и сам да реши накъде да задълбае.

инак... да почнеш направо със С# е като да дадеш на туземец атомно оръжие.

Според мен стабилните основи са важни - много по-важни особено в началото, а със С# е по-лесно ..бих казал подвеждащо лесно и научи ли се човек веднъж на лесното обик. все чака после някой друг да му свърши трудната работа  ;)

Мисля че в случая става дума за поставяне на стабилни основи (поне моят отговор бе в тая насока) - питащия не постави изисквания за време или пари - не твърдя че не е по-лесно да се почне със С# въпросът е когато почне работа този човек  и вече няма време а му се наложи да учи С++ тогава по-лесно ли ще му е отколкото ако сега (когато има време и желание) започне със С++ и после му се наложи да понаучи още 5-10 оператора - мога да ти кажа че аз С# го научих от движение по време на работа и без проблеми, а още не мога да обясня някой основни принципи на колеги започнали направо от Джава и C#...

П.П. тъй като в сл. учащия се е само на 13 т.е има ного врме пред себе си а и смята да става професионалист.. смея да твърдя че точно сега му е времето иначе кога като почне сериозна работа и не му остава вече време ли?

П.П.П. Не препоръчвам да се почва с асемблер но е хубаво да се прочете една книга поне - може и художествена литература по въпроса  8)

Всеки е свободен сам да решава откъде и как да започне защото най-дбре знае къде иска да стигне. Пък ние ще помагаме с каквото можем.

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

Лек ден - колеги. (малка редакция - според новите правила за правопис вече няма колежки всички сме колеги .. за съжаление - колкото и тъпо  да ми звучи напр. колегата Петрова а още по-тъпо е ако фамилията завършва на -ин напр. Тицин иди че познай т'ва мъжко ли е или женско)
Ето на - пак е по-лесно да се прехвърля от старите правила за правопис къмм новите отколкото обратно - познай колко младежи сега ако трябва да се оправят със старите правила за сричко-пренасяне ще ги научат през остатъка от живота си... ::)


Титла: Re: Как да започна с програмирането?
Публикувано от: bop_bop_mara в Sep 17, 2012, 00:51
@remotex, хората с голям опит почти винаги препоръчват да се започне с асемблер или С. Според мен, с по-малко от 1/3 от твоят опит, мисля, че е възможно да се стартира от нулата със С# или Джава и без да се занимаваш с ниско ново, което ще спести доста време на учащия.
Аз всеки зимен семестър бера ядове с различните експерименти, които се провеждат във ФМИ в тази област. Не че не е възможно да се почне от Java, но крайният резултат в общия случай е дървета без корени. Когато на тези дървета им се наложи да напишат няколко реда на C, проверяващи дали даден символ е главна буква, се получава:
Код
GeSHi (C):
  1. if(c=='A' || c=='B' || .......... || c=='Z')
понеже, вместо да запомнят базовите неща, като подредбата на буквите в ASCII, са се ровили из голямата библиотека с класове на Java, за да запомнят методите на String, Arrays, LinkedList, Buffered Reader...

разликата между С/С++ е около 10тина оператора
Разликата между процедурно програмиране и ООП не се измерва в брой на операторите. Всяка от двете идеологии си има своите практики и, ако човек не се запознае с тях подробно, а реши да кара „както си знае“, става голяма мазаница.

Отделно, има хора, които напълно отричат C++ като език, чието съществуване има смисъл (извън компютърната графика), понеже ООП-то му не отговаря на съвременните тенденции в другите езици. Та нуждата/ползата от изучаването му е под въпрос.

Аз (и друг път сме говорили по тази тема) също все още смятам за добре да се почва с чисто C и процедурно програмиране. Познавайки процедурното програмиране, човек може да се запознава с каквито други парадигми си иска. Познавайки C, ако реши, човек бързо ще научи синтаксиса C++ или Java. Само не трябва да забравя, че синтаксиса е съвсем малка част от езика, а основното е да се научи да „мисли“ на него, а не само да заменя int main() с public static void main(....).


Титла: Re: Как да започна с програмирането?
Публикувано от: neter в Sep 17, 2012, 01:26
//извън темата

малка редакция - според новите правила за правопис вече няма колежки всички сме колеги .. за съжаление - колкото и тъпо  да ми звучи напр. колегата Петрова а още по-тъпо е ако фамилията завършва на -ин напр. Тицин иди че познай т'ва мъжко ли е или женско
Малка поправка - в старите правила нямаше заложени женски имена за професиите. В новите вече има, едно от които е точно "колежка" :) Четох, че е пропуснато "министърка", но за по-често употребяваните вече си има женски имена.
По-интересен е списъкът с чисто новите думи в тълковния речник, като кликвам, даунлоудвам, смартфон... които пак не са върхът на сладоледа, понеже поне са думи на друг език, които някак може да се намърдат като чуждици, но има и думи като фейсбук и айпад ??? Но да не разводнявам повече темата с това.


Титла: Re: Как да започна с програмирането?
Публикувано от: v13 в Sep 17, 2012, 07:44
А ако кажете на някой американец, че за да научи руски първо трябва да научи български, понеже първоначално и кирилицата е замислена за български и чак тогава ще има необходимата основа да мине на слижния руски с падежите?
Айде стига!
Който си го може си го може! Дори и направо от Java или C# да се започне ако човек е достатъчно находчив и умен за не повече от 10 минути ще намери каквото му трябва в интернет, бързо ще се ориентира и за кратко време ще го вкара в своя полза. Това, че някой не можел да разчупи определени стереотипи и навици си е негов проблем.
Примерно аз предпочитам да ползвам КДЕ но се ориентирам бързо и мога да работя достаъчно добре и с коя да е друга графична среда. Всичко си зависи от човека.
Най-ценното качествор е да си много добре наясно точно какво ти трябва и как и къде да го намериш, другото вече е въпрос бързина на усвояване упоритост и ред други качества, които не е задължително да са придобити от програмиране.
Поинтересувайте се дали някой от големите хакери и програмисти са започнали от някакви препоръчани стереотипи за тяхното време. Всички са били водени от ентусиазнма, въодушевлението, интереса, учили са се в движение и непрекъснато са практикували.
Няма значение с какво започваш, всичко си зависи от човека и личностните му качества!
С малкия съм седял само 2 -3 пъти да го уча на азбука и само 1 - 2 пъти съм му обяснявал за сричките. Сега тръгва в първи клас и вече може да чете. Може да се каже, че се научи сам и не защото аз го карах аз защото сам имаше силно желание и мотивация за това. Е разбира се и направих някой провокации, за да се мотивира сам и резултата е налице.
Всичко зависи от желанието мотивацията и умствените способности, иначе пътища много и всеки сам избира, кой е най-добрия за него.


Титла: Re: Как да започна с програмирането?
Публикувано от: xkernell в Sep 17, 2012, 08:53
Значи, зависи какъв точно код искаш да пишеш, за каква операционна система искаш да пишеш.

C/C++ според мен са чиста загуба на време, освен ако не целиш някаква страшна производителност.
На тях се пише много бавно, нямаш "събиране на боклуците", което означава, че сама трябва да си освобождаваш ресурсите. Много са трудни за дебъгване, особено от съвсем начинаещи.

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

Също зависи какви програми искаш да създаваш. Ако ще създаваш Web приложения започни с HTML/PHP. След това CSS и JS.

Ако ще създаваш приложения за компютри също зависи.
Ако ще пишеш за Windows тогава погледни .NET платформата, много лесна е за използване и на сайта на MS има подробна документация за всичко.
Погледни C#, силно типизиран е и може да ти се стори сложен, ако стане така и не успееш да се ориентираш мини на Visual Basic, това е горе долу C#, само, че е доста опростен синтаксиса и прилича до някъде на Python и типизацията е по избор. След това като опознаеш .NET можеш да минеш на почти всеки един поддържан език за нула време. Трябва да погледнеш ООП при всички случай, концепцията не е толкова сложна и в .NET се използва доста лесно. За Windows най-добрия избор е .NET платформата. Тук мога да помогна аз, ако имаш някакви въпроси.

Ако ще пишеш за други операционни системи тогава започни с Java, за там също ти трябва да прочетеш за ООП.

И пак повтарям C/C++ могат да те откажат от програмирането. Можеш напред във времето, когато опознаеш добре философията на програмирането да започнеш да се занимаваш с тях, защото тогава техническото ти мислене ще е много по-развито, но да започнеш с тях не е добра идея.

А до колкото за ООП, това е бъдещето, дали с Java, PHP или .NET... все ще трябва да научиш този похват.



Титла: Re: Как да започна с програмирането?
Публикувано от: laskov в Sep 17, 2012, 10:01
//извън темата: Всички написахте, едва ли не, есета по въпроса. Колко от вас имаха предвид това, че ви пита едно 13 годишно момиче?
Пояснявам - не е студент, искащ да научи нещо повече, не е някой, завършил обучението си, търсещ каква работа да работи ...


Титла: Re: Как да започна с програмирането?
Публикувано от: Acho в Sep 17, 2012, 10:07
Ами с каквото и да започне - добре е. Не е казано, че с каквото започнеш, после цял живот само с това ще се занимаваш. Особено в тоя динамичен и променлив живот. Всичко се променя много-много бързо. Важното е, че има желание да се учи и занимава с програмиране. Започни и с bash скриптове ако искаш, все е нещо полезно, и ще те научи на много похвати. Поздрави и успехи от мен.


Титла: Re: Как да започна с програмирането?
Публикувано от: nyakoy в Sep 17, 2012, 12:11
  Аз понеже не съм програмист (въпреки усилията да науча преди години С и С++) ще си позволя да дам съвет в друга насока. Оправям се с езиците, но за съжаление не и с тези за програмиране :) Та един ефект от ученето на другите езици, който мисля, че е в сила и за програмните такива:
При изучаване на един език учащият неминуемо се сблъсква с "ефекта на фунията". Отначало учиш и и трупаш знанията в тясното на фунията, затова нивото се покачва бързо. Обаче колкото повече знания наливаш, толкова фунията става по-широка, съответно нивото се покачва по-бавно. В резултат учащият започва да се съмнява дали научава нови неща и дали не тъпче на едно място.


Титла: Re: Как да започна с програмирането?
Публикувано от: Nedko Arnaudov в Sep 17, 2012, 12:16
Изцяло подкрепям мнението на remotex. Без C и Асемблер си като дърво без корени. Въпросът не е да се пише само на тях - за  всяко нещо си има подходящ (къде обективно къде според модата) език
 
Някой преди попита дали имало хора дето пишат графични интерфейси на C. Ами има. Доста gnome програми са на чисто C. Защото можеш да пишеш обектно ориентирано и на чисто C.

И накрая малко (къде смешни къде трагични) цитати:

I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. -- Alan Kay

c++ is a pile of crap. -- Theo de Raadt

If you like C++, you don't know C++. There's a mutual exclusion going on here, and I've yet to see a counter-example other than possibly a few of the members of the standards committee. -- ssylvan in reddit.

Според мен ООП най-добре се учи със скриптов език. ООП имплементации на ниско ниво има доста и е лошо човек да бъде подлъгван в началото с догми като C++, Джава, C#, Vala/Genie, и т.н.


Титла: Re: Как да започна с програмирането?
Публикувано от: xkernell в Sep 17, 2012, 12:21
// извън темата

Аз понеже не съм програмист (въпреки усилията да науча преди години С и С++)

А не си ли се замислял защо си се отказал... както казах тези двата езика са склонни да откажат доста хора от програмирането...  Хората гледаме сложни и големи приложения... и си създаваме някаква романтична представа за програмирането... и когато се захванем с C/C++ като първи езици... изпадаме в шок... с мен така се случи... ама имаше хора, които ми показаха, че не всички езици са като C/C++... и в момента пиша на няколко езика и имам по няколко големи проекта на всеки от тях... сега пак не пиша на C++ но вече по други причини...

Много е важно с кой език започваш...
А то ефекта на фунията винаги го има при всички езици...


Титла: Re: Как да започна с програмирането?
Публикувано от: XpucToBa в Sep 17, 2012, 13:28
Цитат
Абe @laskov не прочете ли по-рано, че тя написа, че не иска да решава задачи. Момичето е решило да програмира, не да смята...

Не исках да кажа точно това.. исках да кажа, че искам да започна с нещо като за начинаещ и затова питах и за C дали е подходящ. За математиката не се притеснявайте редовна съм в часовете и ходя на уроци, отделно всеки ден си решавам някоя друга задача.


Титла: Re: Как да започна с програмирането?
Публикувано от: laskov в Sep 17, 2012, 13:37
Не се притеснявай! Всеки чете и разбира нещата по свой си начин.
Хубавото е, че все още си тук, а още по-хубавото е, че си стигнала до това, да зададеш такъв въпрос. Сигурен съм, че ще намериш откъде да започнеш! Успех!


Титла: Re: Как да започна с програмирането?
Публикувано от: go_fire в Sep 17, 2012, 13:45
5.

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


Добавка

Като си написах коментара не бях забелязал, че Нетер вече е отговорил. С някой от тия добавки крайно не съм съгласен и няма да ползвам.  Дума като даунлодвам никога няма да ползвам. Имаме си българската свалям, която на всичкото отгоре, освен много по-разбираема е много по-лесна.

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

А да и за наставката ин. До след средата на предният век, когато се отнасяше за лични имена, в нашият език се употребяваше за копелета. Сиреч, ако дете, не е припознато от баща си и се кръсти на майката, то получаваше ин за отличаване. В развития социализъм поради нарастване броя на копелетата, отличаването като такова, започна да се приема за обидно и практиката отпадна, точно някъде  около 70-80.

Запазиха се такива имена, които вече са приети по наследство. Не е вярно, че няма женска форма. Има и тя логично е ина.

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

Тази тенденция ще се задълбочи още повече, не само от слабоумни родили, но и от това, че навлязоха много чужди имена, които наистина не звучат добре с ов/ова или ев/ева за окончание. До масовизирането на този проблем обаче ще се стигне едва след 10-20 г., когато днешните деца ще са достатъчно големи, те да имат деца. Но това няма да е проблем, защото не много след това, така или иначе вече няма да има българи, което означава, че няма да има и нужда от български имена, защото няма да има кой да ги носи.


Титла: Re: Как да започна с програмирането?
Публикувано от: bop_bop_mara в Sep 17, 2012, 13:49
//извън темата: Всички написахте, едва ли не, есета по въпроса. Колко от вас имаха предвид това, че ви пита едно 13 годишно момиче?
Пояснявам - не е студент, искащ да научи нещо повече, не е някой, завършил обучението си, търсещ каква работа да работи ...
Ами аз и от тази позиция говоря.

Колегите ми в университета, които в училище бяха били състезатели по програмиране, винаги вървяха по-напред от масовото ниво, нещата им се удаваха много по-бързо и лесно. Това бяха хора, започнали да се учат на програмиране около 7-8-9 клас (13 години е 6-7 клас, нали?) и няколко години (по малко всяка седмица) писали алгоритмични задачки на езици като C, C++, Pascal (той сега май вече не влиза в състезателната програма). А след 2-ри курс предимството им вече беше видно не само в учебната програма по програмиране, но и на трудовия пазар.

На практика на човек наистина си му трябват 1-2-3 години, за да започне да осъзнава някои неща като памет и пойнтъри. Когато си ученик, имаш това време и нужното спокойствие. В университета 15 седмици след началото вече те изпитват и преценяват (и под преценяват наистина имам пред вид определят те за годен или не).

XpucToBa, а ти откъде си, къде учиш? В крайна сметка това, с което се захващаш си е сериозно начинание и самообучението е огромно предизвикателство, ако можем да ти кажем някой, към който да се обръщаш директно за напътствия и помощ, ще е хубаво. :)


Титла: Re: Как да започна с програмирането?
Публикувано от: XpucToBa в Sep 17, 2012, 13:57
Цитат
XpucToBa, а ти откъде си, къде учиш? В крайна сметка това, с което се захващаш си е сериозно начинание и самообучението е огромно предизвикателство, ако можем да ти кажем някой, към който да се обръщаш директно за напътствия и помощ, ще е хубаво.

 
Еми аз съм от малък град Исперих и уча в по-малкото училище ( Те са 2 в града  ;D ) Знам, че това е наистина голямо предизвикателство, но пък искам да се занимавам с това. :)


Титла: Re: Как да започна с програмирането?
Публикувано от: xkernell в Sep 17, 2012, 14:00
Респект тогава за начинанието. Проучи добре всеки от евентуалните езици преди да избереш. И най-вече успех!


Титла: Re: Как да започна с програмирането?
Публикувано от: b2l в Sep 17, 2012, 14:12
А аз смятам, че като те хване пубертета след 1 година и ще забравиш какво е Java и C++ и само мъже ще са ти в главата :D :D :D.


Титла: Re: Как да започна с програмирането?
Публикувано от: XpucToBa в Sep 17, 2012, 14:15
А аз смятам, че като те хване пубертета след 1 година и ще забравиш какво е Java и C++ и само мъже ще са ти в главата :D :D :D.

Мене още миналата година ме хвана ама като седна на компютъра и забравям за света...


Титла: Re: Как да започна с програмирането?
Публикувано от: b2l в Sep 17, 2012, 14:16
А аз смятам, че като те хване пубертета след 1 година и ще забравиш какво е Java и C++ и само мъже ще са ти в главата :D :D :D.

Мене още миналата година ме хвана ама като седна на компютъра и забравям за света...

Значи нищо не те е хванало все още.


Титла: Re: Как да започна с програмирането?
Публикувано от: XpucToBa в Sep 17, 2012, 14:17
А аз смятам, че като те хване пубертета след 1 година и ще забравиш какво е Java и C++ и само мъже ще са ти в главата :D :D :D.

Мене още миналата година ме хвана ама като седна на компютъра и забравям за света...

Значи нищо не те е хванало все още.

Няма да споря .. ;д


Титла: Re: Как да започна с програмирането?
Публикувано от: b2l в Sep 17, 2012, 14:18
Няма да споря .. ;д

Под "пубертет" нямам предвид, че ти е дошъл цикъла.


Титла: Re: Как да започна с програмирането?
Публикувано от: xkernell в Sep 17, 2012, 14:18
А аз смятам, че като те хване пубертета след 1 година и ще забравиш какво е Java и C++ и само мъже ще са ти в главата :D :D :D.
E, нищо де, то за една година доста може да се научи. :D


Титла: Re: Как да започна с програмирането?
Публикувано от: xkernell в Sep 17, 2012, 14:19
Няма да споря .. ;д

Под "пубертет" нямам предвид, че ти е дошъл цикъла.
Айде стига де, на къде отива тази тема :D


Титла: Re: Как да започна с програмирането?
Публикувано от: bop_bop_mara в Sep 17, 2012, 14:25
А аз смятам, че като те хване пубертета след 1 година и ще забравиш какво е Java и C++ и само мъже ще са ти в главата :D :D :D.
Пълни глупости говориш (даже на моменти граничат с обиди). Или обясни къде ти е логиката, или се изивини на момичето, моля те!


Титла: Re: Как да започна с програмирането?
Публикувано от: b2l в Sep 17, 2012, 14:28
А аз смятам, че като те хване пубертета след 1 година и ще забравиш какво е Java и C++ и само мъже ще са ти в главата :D :D :D.
Пълни глупости говориш (даже на моменти граничат с обиди). Или обясни къде ти е логиката, или се изивини на момичето, моля те!

Логиката е там, че ще е разсеяна. Плюс това малко са момичетата, които притежават логическо мислене. Сега й е интересно - утре ще й е интересно новата колекция на Паоло Ботичели.


Титла: Re: Как да започна с програмирането?
Публикувано от: bop_bop_mara в Sep 17, 2012, 14:30
Логиката е там, че ще е разсеяна. Плюс това малко са момичетата, които притежават логическо мислене. Сега й е интересно - утре ще й е интересно новата колекция на Паоло Ботичели.
И предполагам изхождаш от собствен опит с твоите връстнички?...


Титла: Re: Как да започна с програмирането?
Публикувано от: b2l в Sep 17, 2012, 14:31
Логиката е там, че ще е разсеяна. Плюс това малко са момичетата, които притежават логическо мислене. Сега й е интересно - утре ще й е интересно новата колекция на Паоло Ботичели.
И предполагам изхождаш от собствен опит с твоите връстнички?...

Хайде изходи от твоя опит и връстнички и ми кажи колко програмистки познаваш?

Марче, за Бога, спориш с мен :D :D :D :D.


Титла: Re: Как да започна с програмирането?
Публикувано от: XpucToBa в Sep 17, 2012, 14:32
Хайде стига вече, и само да кажа, че никога до сега не ме е интересувала мода, дрехи, гримове и т.н въпреки, че съм момиче. Повече са ми интересни компютрите, а не огледалата ;)


Титла: Re: Как да започна с програмирането?
Публикувано от: xkernell в Sep 17, 2012, 14:34
Цитат
Логиката е там, че ще е разсеяна. Плюс това малко са момичетата, които притежават логическо мислене. Сега й е интересно - утре ще й е интересно новата колекция на Паоло Ботичели.
Не е така бе човек, тя ако иска да се занимава с това и ако не е съвсем малоумна (а по постовете съдя, че не е) ще успее да стане една доста добра програмистка.


Титла: Re: Как да започна с програмирането?
Публикувано от: laskov в Sep 17, 2012, 15:00
Христова, ти току-що премина един от тестовете за добър програмист! :) - способността да се абстрахираш от шумовете на околната среда е много важна! :)


Титла: Re: Как да започна с програмирането?
Публикувано от: bop_bop_mara в Sep 17, 2012, 15:04
Хайде изходи от твоя опит и връстнички и ми кажи колко програмистки познаваш?
Доста! Включително такива, които са били състезателки в училище. И доста дами, използващи Линукс познавам, както често съм споменавала тук. И много съжалявам за всеки, чиято програмистка среда е била изпълнена само с мъже. Просто не сте имали късмет с мястото и с хората.

Плюс това малко са момичетата, които притежават логическо мислене. Сега й е интересно - утре ще й е интересно новата колекция на Паоло Ботичели.
Истината е, че малко са и момчетата (да не ти припомням думичката Prolog ;)).

И да, на мен ми е интересно и програмирането, и обувките на Паоло Ботичели (как ме нацели, само :D).  Всъщност аз дори не съм добър пример, повечето ми познати IT дами отделят доста повече време за поддръжка на гардероба и външния си вид. И не ти говоря за кухи лейки, дето са научили малко синтаксис, за да ги вземат на работа, където по цял ден да стоят пред фейсбука. Ти също имаш такива познати, доколкото си спомням.

Марче, за Бога, спориш с мен :D :D :D :D.
Именно понеже споря с теб, директно ти казвам, че говориш глупости. Ако бях във Варна лично щях да дойда и да се саморазправя с теб!  ;D


Титла: Re: Как да започна с програмирането?
Публикувано от: b2l в Sep 17, 2012, 15:08
Именно понеже споря с теб, директно ти казвам, че говориш глупости. Ако бях във Варна лично щях да дойда и да се саморазправя с теб!  ;D

Хахахаха, колко ме изплаши само :D :D :D. (hug)


Титла: Re: Как да започна с програмирането?
Публикувано от: ieti в Sep 17, 2012, 15:52
Браво на авторката на темата, че иска да се занимава с тази малко неблагодарна професия. Интересно е, забавно е, но понякога наистина има малко горчилка.

По въпроса за езика - той няма особено голямо значение. Било то с garbage collector или не. Е все пак тези без учат на малко дисциплина да си заделяш и чистиш след себе си. Натъквал съм се на не малко бози породени от фрагментация, изтичане на памет и кофти синхронизация. Хубаво е и това да се знае все пак и да се мисли до какво може да доведе. Но това на малко по-късен етап.

Логическото мислене е важно. То ти дава една свобода да мислиш как ще работи програмата. То ти дава основа и най-общо казано набор от правила кое как става. Нещо като ако научиш един език да започнеш да мислиш на самия език, а не да си превеждаш и после да говориш.

По въпроса за колежките програмисти. Дълбок, дълбок респект! Малкото с които съм работил са прекрасни специалисти и наистина заслужават ужавение за това че се занимават с тази донимирана от мъже професия.

ЕДИТ: Една малка подсказка - научи се да търсиш информация бързо. Научи се да отсяваш информация. Не е важно да помниш купища методи, обекти, имена на функции и тн. Важното е да знаеш как може да стане дадено нещо и да намериш средствата за да го постигнеш.


Титла: Re: Как да започна с програмирането?
Публикувано от: gat3way в Sep 17, 2012, 16:32
Познавам немалко жени програмистки, така че не е такъв проблем.

Друг е въпросът че никога няма да ползвам какъвто и да било софтуер свързан с пазаруване и пътувания, написан от жени. Може да е сексистко, но ми навява прекалено много асоциации.


Титла: Re: Как да започна с програмирането?
Публикувано от: remotex в Sep 17, 2012, 17:01
Съгласен съм с Бопчето (още известна под псевдонима Марчето) въпреки че моите наблюдения са доста поотдавнашни явно малко се е променило. Знам че тук има много знаещи обаче знанията не се съзимеряват с опита, а опитните тук са малко и обик. си мълчат.. (знаят.. че ще стане 100 стр. темата) и аз мислех "и този път да пропусна" но виждам че по този начин нищо няма да постигна.
Та още веднъж обяснявам (ако съм останал неразбран) - предложих езика С защото е най-ниското ниво от което може да се започне и е между асемблер/машинен език и езиците от високо ниво а и да се понаучи как работи компютъра (и да се прегледа отгоре отгоре като за начало) следва С++ той пък е на паралела м/у функционално и ООП оттам нататък всичко ще е по-лесно.
Малък пример като за абсолютно начинаещи - един човек като се учи да кара кола и почне от ръчни скорости после няма проблем с автоматичните, докато ако почне с автоматични ...нямам познат който да е минал на ръчни след това и още една аналогия - ако искаш да ставаш механик - няма начин без да се изцапаш и не е ли по-добре отначало да тренираш и да се учиш  в/у на дядо си трабанта отколкото в/у на баща си мерцедеса...
Личното ми мнение е, че новите езици и парадигми много изкривяват още неукото и неукрепнало съзнание на начинещия и после свиква всичко да му е "автоматично" и ако някоя библиотека вече не поддържа това което му трябва обик. казват "това не може да се направи" имайки предид всъщност "това не мога да го направя"
Дано новата колежка е упорита и не я откажат нещата от живота (и някой преподаватели вкл. и от унивеситета)

Аз напр. веднага бих наел човек който ми обнясни как работи следния код... напр. просто strcpy
while (*source++ = *destination++) ;
Дори и да не знае Джава - знам че лесно ще я научи

По въпроса за литературата - много съжалявах навремето като напусках България че няма на кого да си завещая книжките по програмиране (и още съжалявам че вече пък няма кого да изпратя да ги намери и прати на момичето, но пък и те.. стари книги де да не объркваме начинещите - което не ги прави по-лоши... като гледам сегашните ...от 100 стр. дали има материал като за една - хеле па като се сетя как се разваля и преводната литература на какво ли не съм се нагледал напр. имаше една свястна книга за Джава обаче превода... "аритметика на показалките" или беше показалците)

и малко извън темата.
Нетер - Прави си мой човек, поизлязох извън България и позабравям вече. Ей го на оня ден малкия вече се учи да брои и си говори там: един домат, два домати, три домати... мнооого домати (дотолкова знае да брои вече) и аз се сещам пак за новите правила и се чудя как да го почвам да го уча и на български вече... ама ще карам по старите правила: по-лесно ще му е да мине на новите ако иска после. И се сещам за моите години в родната казарма "Кой скри на старото Хасан двамата чорапа (а той чорапите си ги "криеше"... вечер прави като на пост, зад вратата де и им се носеше м-м-м... славата - ако някой още се чуди защо все изчезваха)" - това е личното ми мнение. Аз и на "Аз съм българче" ще го науча, нищо че го няма вече в учебната програма.

П.П. Христова, една от книжките по които се учих навремето беше посветена "на духа в компютъра" - точно така не в бутилката, не на жената и децата който въобще не са му пречили на автора а "на духа в компютъра" и аз тогава млад и абсолютен начинаещ много се чудих на това посвещение за кого ли е...е сега вече .. 20 г. по-късно знам: За такива като теб и мен е. С каквото и да се захванеш - не се отказвай, продължавай напред.

П.П.П. Паскал още си се ползва за състезателно програмиране доколкото знам. Също не е лош като за начало, жалко че не се използва много вече... Затова и предложих езици които са живи още, па макар и малко чепати, доказали са се с времето и са един добър старт.

Лек ден ви желая - колеги и колежки.


Титла: Re: Как да започна с програмирането?
Публикувано от: zdraganov в Sep 17, 2012, 17:28
Здравейте на всички,
Не съм от най-приказливите по форумите (предпочитам да чета и да се образовам вместо да драскам неща които и някой друг може да напише), но темата ме заинтригува затова искам да пусна коментарче.
Браво за ентусиазма на девойката, ако има желание човек успява независимо от пречките.
Първо искам да споделя малко от собствения си опит. Занимавам се горе-долу от 8 клас в гимназията с програмиране, през университета (където започвам 3 година), както и професионално. Твърдя че съм минал през няколко етапа на обучение (предимно самостоятелно) и че имам какво да ти кажа по темата.
Както повечето тук, ще ти кажа че езикът не е от най-голямо значение. Важно е да се научиш да мислиш по-правилния начин и оттам голяма част от езиците ще ги учиш в движение с помоща на Гугъл и други незаменими за програмиста "извори" на безценна информация :)
Аз лично започнах с популярния на времето "ученически" Паскал, минах през C/C++, после и Java, C#, Visual Basic, Objective-C, PHP, Ruby, Groovy, Bash (може и да изпускам нещо). За първи език препоръчвам процедурен Pascal или C. Ако се занимаваш сериозно в един момент ще ти стане "неудобно" и ще тръгнеш в дебрите на Обектно-ориентираното програмиране (накратко ООП), но не бързай - на мен ми отне поне 3-4 години да разбера, че имам нужда от него.
Ако отделяш достатъчно време и нерви, ще успееш независимо в каква насока се развиваш и с кой език започваш. Даже някой ден ще ти стане все тая...
Успех и очакваме да споделяш опит.


Титла: Re: Как да започна с програмирането?
Публикувано от: v13 в Sep 17, 2012, 17:53
Според мен жените в програмирането са като жените шофьорки. Много жени могат да карат кола, и се справят някак си, но наистина добри шофьорки са много малко и са толкова добри, че в много отношения превъзхождат и много мъже, които се считат за добри шофьори. :)


Титла: Re: Как да започна с програмирането?
Публикувано от: XpucToBa в Sep 17, 2012, 18:33
Благодаря на всички за милите думи! Добре тогава ще послушам вашия съвет и ще започна най-напред със C, вече ще мина към C++, когато реша, че съм готова за това. А само като за последно да попитам Code::Blocks хубав компилатор ли е? :)


Титла: Re: Как да започна с програмирането?
Публикувано от: v13 в Sep 17, 2012, 19:24
Благодаря на всички за милите думи! Добре тогава ще послушам вашия съвет и ще започна най-напред със C, вече ще мина към C++, когато реша, че съм готова за това. А само като за последно да попитам Code::Blocks хубав компилатор ли е? :)
Това е IDE не е компилатор но включва в себе си компилатор. Това е среда за разработка, не съм сигурен до колко подържа C на сайта пише, че е за C++
Много добрa IDE е също QT Creator http://qt.nokia.com/products/developer-tools но също е за C++


Титла: Re: Как да започна с програмирането?
Публикувано от: bvbfan в Sep 17, 2012, 19:24
Code::Blocks е IDE ($2), компилаторът е gcc. Идеален е, аз него ползвам и на работа, и вкъщи. В С/С++ няма правилен начин, това много учудва хора, които не са се занимали с езика, в дадена ситуация всяко решение може да бъде грешно или не грешно, но никога не може да бъде вярно  ;D


Титла: Re: Как да започна с програмирането?
Публикувано от: xkernell в Sep 17, 2012, 19:29
Мда... на това му викам "емулаторен език", това е и една от причините да не пиша на C++.
Ама някой път се налага де... когато производителността е от най-голямо значение.


Титла: Re: Как да започна с програмирането?
Публикувано от: remotex в Sep 17, 2012, 20:19
C/C++ няма никакъв проблем да се ползва развойна среда за С++ за да се пише код на С с нея. Езикът С++ е обратно съвместим със С а и обикновено повечето по известни развойни среди имат опция при създаването на нов проект да се укаже че искаме да е С вместо подразбиращото се С++ и да нямат такава опция смело правете С++ проект и си пишете С код вътре - вашият С код начинещи е 100% С++ код.
Така че търсете и С++ IDE то става и за С.
Естествено не препоръчвам тежки джава среди като нетбийнс или иклипс, но .. абе важното е да се пробват повечко - с течение на времето човек се спира на каквото му иде най отръки


Титла: Re: Как да започна с програмирането?
Публикувано от: borovaka в Sep 17, 2012, 20:46
Аз пък точно Eclipse CDT препоръчвам за начинаещи ( мързеливци като мене ), даже най-добре си е Студиота за C/C++ като IDE според мен де компилатора им, не заради друго, но показва най-удобно грешките и се усеща доста интуитивно къде е проблема. Е вече в новото GCC наблегнаха малко на съобщенията за грешки, по подобие на Clang. Абе за начинаещ всичко става за писане в общи линии, но IDE-тата улесняват живота.


Титла: Re: Как да започна с програмирането?
Публикувано от: v13 в Sep 17, 2012, 21:11
Според мен за Java, Eclipse е прекрасно IDE, смело мога да кажа, че последната версия е по-бърза, консумира и по-малко ресурси в сравнение с Netbeans. Също така има много допълнителни функционалности, които могат да бъдат включени.


Титла: Re: Как да започна с програмирането?
Публикувано от: ji в Sep 18, 2012, 01:00
@remotex

Код
GeSHi (C):
  1. while (*source++ = *destination++) ;
  2.  
Аритметика с указатели.
с този код може да се копират масиви и структури(в union с по-малък и кратен по размер тип) терминирани с 0 от едно място на паметта в друго.

1. копираме стойноста сочена от *destination указателя на място в паметта сочено от *source указателя.
2. инкрементираме указателите. т.е те вече ще сочат size(type) байта напред в паметта
3. ако е изкопирана стойност различна от нула процеса се повтаря.

ps.  имената на порменливите трябва да се рзменят за да изглежда по-добре :)

Код
GeSHi (C):
  1. while (*destination++ = *source++){/* do nothing*/};
  2.  


ps/2 интересни неща се случват, ако destination масива е с по-малък размер от source-a.


Титла: Re: Как да започна с програмирането?
Публикувано от: remotex в Sep 18, 2012, 05:53
мъка, мъкааа...

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

За тези които искат да научат нещо:
Задачата има следнто условие
Приемаме че указателите са към различни не припокриващи се области от паметта, инициализирани с коректно терминирани символни низове с еднаква дължина, завършващи с 0х00 и че някъде преди и след този код паметта за тях се заделя и освобождава правилно.
char *source, *destination;
while (*destination++ = *source++);


Какво прави кода от примера по-горе? Как работи?

Според правилата на езика и приоритета на операторите първо се изпълнява постфиксния ++

Обяснение за начинаещи: тъй като по смисъл постфиксното ++ означава че операцията трябва да се извърши последна, то се създават временни копия които се инкрементират и едва накрая се присвояват на истинските променливи новите им ст-ти.

Обяснение за напреднали: Всъщност се инкрементират истинските променливи от постфиксните ++, а кода по-горе работи с временните променливи в които се копират текущите ст-ти преди инкрементирането. Справка - изход от дебъгер, дезасемблер или обектен код.

Следващ по приоритет оператор е * - извличане на ст-т от адрес в памета и преобразуване до тип.

Следва оператора за присвояване на ст-т който връща като резултат последно присвоената ст-т от тип символ която се преобразува до булев тип и служи за изход от тялото на цикъла при копиране на ст-т 0х00.
Самото тяло на цикъла е празен оператор ;

Отговор: Копира символ по символ блок от паметта докато стигне до 0х00? Как точно го прави вече обясних по-горе

П.П. Не е желателно така да копирате структури (говоря за професионален код/подход) собено пък на диск - защото ако ги пишете напр. от 32битов код а ги четете от 64битов (макар и генериран от същия компилатор) много вероятно няма да прочетете точно същата структура която сте записали - подравняват се различно.

П.П.П. Трудно се стига до това ниво да пишете код като горния... Не помня вече точно кой от великите скулптори на средновековието като го питали "Как постигате такова съвършенство" той отговорил - "Много лесно. Просто премахвам всичко излишно от камъка и остава самото съвършенство"


Титла: Re: Как да започна с програмирането?
Публикувано от: go_fire в Sep 18, 2012, 08:30
5. т.

(отг. Микеланджело и е от ренесанса, а не средновековието)


Титла: Re: Как да започна с програмирането?
Публикувано от: gat3way в Sep 18, 2012, 09:55
Въобще не съм съгласен, далеч по-лесно е да се ползва strcpy() и да не разсъждаваш толкова по въпроса. Друг е въпросът, че и резултатът ще е най-вероятно по-добър, gcc най-вероятно ще използва __builtin_strcpy(), което ще генерира по-бърз код от цикъла с копиране байт по байт. Защо ще е по-бърз е съвсем друга тема на разговор, но от гледна точка на оптимизиращ компилатор, този цикъл е крив - броят на итерациите не е предварително известен и това изключва вариантите за векторизация и/или частично unroll-ване на цикъла.


Титла: Re: Как да започна с програмирането?
Публикувано от: zdraganov в Sep 18, 2012, 10:33
Отново здравейте,
Не мога да не пиша отново по темата. Не виждам кой пита за strcpy(), който и да е - не е по темата. Момичето иска мнения по въпроса, а не да ви слуша кой е по-велик, че си копира стрингове без да ползва готовите функции или че сам си е написал GK или че "компилира наум" ако щете. Флоутите излишно темата.
Сега по въпроса за IDE-то. Тъй като форумът е "Линукс за българи", предполагам че и ти си фенка на тази ОС, така че ти препоръчвам два варианта, подходящи за начинаещи : Kate(за KDE) или Gedit(за Gnome). Достатъчно прости и лесни за използване. Както в предходния коментар отново ще спомена, ползвай нещо просто, докато не почувстваш нужда от по-мощно IDE. Пробвай и да компилираш текстови файлчета(например да принтиш нещо в конзолата или нещо супер просто като за начало), за да видиш че и без IDE може да подкарваш програмките, които пишеш. Ако пък си цъкаш на Windows, препоръчвам ти отново простичкото Quincy. Не се задълбочавай в IDE-то чак толкова, помъчи се с езика и разцъквай програмки, вместо само суха теория :)
Успех!


Титла: Re: Как да започна с програмирането?
Публикувано от: bop_bop_mara в Sep 18, 2012, 13:39
Сега по въпроса за IDE-то.
Всъщност, въпросът беше за компилатор май... Но, да, да каже момичето каква ОС използва, за да може да ѝ дадем точни насоки не само какво да си инсталира, но и как да го използва.


Титла: Re: Как да започна с програмирането?
Публикувано от: zdraganov в Sep 18, 2012, 14:45
Сега по въпроса за IDE-то.
Всъщност, въпросът беше за компилатор май... Но, да, да каже момичето каква ОС използва, за да може да ѝ дадем точни насоки не само какво да си инсталира, но и как да го използва.
Прав си, но според мен е имала на предвид IDE, и все пак ако се интересува и за компилатор GCC и Ch са безплатни и мултиплатформени. Вторият върви с IDE, но не го препоръчвам (особено Professional версията).


Титла: Re: Как да започна с програмирането?
Публикувано от: XpucToBa в Sep 18, 2012, 16:03
Ами с Windows 7 Ultimate съм. :)


Титла: Re: Как да започна с програмирането?
Публикувано от: geroy в Sep 18, 2012, 16:09
Като си на windows -> http://bloodshed.net/dev/devcpp.html ($2), http://wxdsgn.sourceforge.net/ ($2)


Титла: Re: Как да започна с програмирането?
Публикувано от: b2l в Sep 18, 2012, 16:37
Ами с Windows 7 Ultimate съм. :)

Microsoft Visual Studio 2012


Титла: Re: Как да започна с програмирането?
Публикувано от: xkernell в Sep 18, 2012, 16:39
Да, таман ще имаш достъп и до цялата .NET библиотека.

П.П. Между другото с VS можеш да компилираш с компилатора на Intel, който до някъде увеличава производителността. Можеш да го инсталираш в самото IDE.


Титла: Re: Как да започна с програмирането?
Публикувано от: XpucToBa в Sep 18, 2012, 17:09
Благодаря на всички за помоща отново. :)


Титла: Re: Как да започна с програмирането?
Публикувано от: bop_bop_mara в Sep 18, 2012, 17:53
Ами с Windows 7 Ultimate съм. :)

Microsoft Visual Studio 2012
В никакъв случай! Особено пък, ако ще учи C. Пък и все пак сме форум за свободен софтуер, бива ли да караш момичето от една страна да се мъчи да инсталира тва нещо, от друга и да бъде нелегално.


Титла: Re: Как да започна с програмирането?
Публикувано от: xkernell в Sep 18, 2012, 17:56
Е, ти пък се изказа... има и напълно безплатна версия... Visual Studio 2012 Express ...


Титла: Re: Как да започна с програмирането?
Публикувано от: bop_bop_mara в Sep 18, 2012, 18:05
Е, ти пък се изказа... има и напълно безплатна версия... Visual Studio 2012 Express ...
Не знаех (за свое щастие ;)). И, все пак, аз бих предпочела нещо различно...


Титла: Re: Как да започна с програмирането?
Публикувано от: xkernell в Sep 18, 2012, 18:14
Ами това е най-доброто за Windows, все пак има причина дори и PHP интерпретатора за Windows да се компилира с VS.


Титла: Re: Как да започна с програмирането?
Публикувано от: b2l в Sep 18, 2012, 19:03
Да, във форум на Линукс сме, но тя е с Windows.


Титла: Re: Как да започна с програмирането?
Публикувано от: Nedko Arnaudov в Sep 18, 2012, 19:05
Visual Studio не е много подходящ за чисто Си. С подмяна на компилатора на интелски може и да започне да поддържа Си99, но пак малко се губи смисъла на ИДЕ-то. Доскоро (не знам за последната версия) дори уиндоските драйвъри (които са на чисто Си) не беше препоръчително да се пишат с VS. В DDK/WDK-то има(ше) nmake базирана билд-система.


Титла: Re: Как да започна с програмирането?
Публикувано от: b2l в Sep 18, 2012, 19:12
Visual Studio не е много подходящ за чисто Си. С подмяна на компилатора на интелски може и да започне да поддържа Си99, но пак малко се губи смисъла на ИДЕ-то. Доскоро (не знам за последната версия) дори уиндоските драйвъри (които са на чисто Си) не беше препоръчително да се пишат с VS. В DDK/WDK-то има(ше) nmake базирана билд-система.

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


Титла: Re: Как да започна с програмирането?
Публикувано от: xkernell в Sep 18, 2012, 19:15
Visual Studio не е много подходящ за чисто Си. С подмяна на компилатора на интелски може и да започне да поддържа Си99, но пак малко се губи смисъла на ИДЕ-то.
Е тук вече съм напълно съгласен. Аз говоря за C++ не за C.


Титла: Re: Как да започна с програмирането?
Публикувано от: Nedko Arnaudov в Sep 18, 2012, 19:21
С оглед същността на форума, най-подходящо би било да препоръчаме преминаване на Линукс, тъй като е операционна система приятелски настроена към програмистите. Освен това най-популярната среда за програмиране под Линукс не е ИДЕ (в класическия му смисъл) а е комбинацията от текстов редактор (vim/emacs), команден ред, gcc и билд система (gnu make, waf, autotools, cmake, scons, и т.н.)


Титла: Re: Как да започна с програмирането?
Публикувано от: b2l в Sep 18, 2012, 19:24
Вие пък сте скучняри  >:(. Сега искате тя да си сложи Линукс и вместо да пише код, да се чуди как да си пусне флаша за фейса, скайпа и камерата на компютъра...


Титла: Re: Как да започна с програмирането?
Публикувано от: xkernell в Sep 18, 2012, 19:29
С оглед същността на форума, най-подходящо би било да препоръчаме преминаване на Линукс, тъй като е операционна система приятелски настроена към програмистите.
Да, но имай предвид, че това е едно 13 годишно момиче, което предполагам, че сега се е научило да работи на Windows. Линукса ще и се стори кошмар. Вярно, че тук е Линукс форум, ама все пак да се съобразим, че не става въпрос за някой изпечен техничар.


Титла: Re: Как да започна с програмирането?
Публикувано от: XpucToBa в Sep 18, 2012, 19:34
Писах тема и питах Вас, защото видях, че сте умни хора и разбирате от това.. Нищо чудно някой след малко да напише, че ми трябва и нов компютър  :D  ;D


Титла: Re: Как да започна с програмирането?
Публикувано от: Nedko Arnaudov в Sep 18, 2012, 19:36
Колкото по-рано се сблъскаш с Линукс толкова по-лесен ще ти се стори. Защото няма да си се обременил с парадигмите на Уиндоус/МакОС (потребителски ориентираният графичен интерфейс).


Титла: Re: Как да започна с програмирането?
Публикувано от: XpucToBa в Sep 18, 2012, 19:38
Колкото по-рано се сблъскаш с Линукс толкова по-лесен ще ти се стори. Защото няма да си се обременил с парадигмите на Уиндоус/МакОС (потребителски ориентираният графичен интерфейс).

Прав си, обаче нямам време и да се занимавам и с Линукс не съм човек, който може да стои само на компютъра все пак ходя и на училище! :)


Титла: Re: Как да започна с програмирането?
Публикувано от: Nedko Arnaudov в Sep 18, 2012, 19:41
Прав си, обаче нямам време и да се занимавам с Линукс не съм човек, който може да стои само на компютъра все пак ходя и на училище! :)

Значи може би вече е твърде късно. Може би учебниците по информатика дето са спонсорирани от Майкрософт са си свършили работата.


Титла: Re: Как да започна с програмирането?
Публикувано от: xkernell в Sep 18, 2012, 19:44
Прав си, обаче нямам време и да се занимавам и с Линукс не съм човек, който може да стои само на компютъра все пак ходя и на училище! :)
Избери си нещо, което да ти харесва, игнорирай споровете м-у нас, ние можем да ти дадем съвети, но не можем да ти дадем опита, който сме изградили. С времето ще ти се наложи да работиш и на Линукс, но всичко с времето си.


Титла: Re: Как да започна с програмирането?
Публикувано от: Nedko Arnaudov в Sep 18, 2012, 20:25
Нищо чудно някой след малко да напише, че ми трябва и нов компютър  :D  ;D

За съжаление заради Secure Boot, може и наистина да ти се наложи.


Титла: Re: Как да започна с програмирането?
Публикувано от: xkernell в Sep 18, 2012, 20:38
Боже мили, хайде да се върнем на темата и да помогнем на момичето, а не да тролим. Моля ви се...
А бе тука модератори няма ли бе?


Титла: Re: Как да започна с програмирането?
Публикувано от: go_fire в Sep 18, 2012, 22:14
Има, скоро ще ни изгонят. Не разбрах, какво като е на 13? Моите синове от три годишни са на ГНУ/Линукс и не виждам да имат проблем. Големия за много кратък период не беше, докато му гръмна твърдия диск и не наложих отново УСУ. Малкия дето сега е първи клас вече почти познава КДЕ4 по-добре от мен и никога не е имал у нас друга ОС да се занимава.

Заради SB е по-вероятно да не ѝ е възможно, отколкото наложително. И изобщо „налага се“ съотнесено към ГНУ/Линукс е ирелевантно. Ние не налагаме! Ние даваме свобода. Ползва нашето само този, който желае и в никакъв случай насилствено.


Титла: Re: Как да започна с програмирането?
Публикувано от: zdraganov в Sep 19, 2012, 16:42
Колкото и да ми е неприятно да го кажа наистина Линукс не е подходяща ОС за 13 годишно момиче. От гледна точка на IDE-то в никакъв случай VS, по-добре да започне с нещо lightweight и после да прецени на къде да се насочи. Силно препоръчвам за начинаещи http://www.codecutter.net/tools/quincy/. Не съм против VS - отличен избор за напреднал developer, но просто ще се бори с IDE-то не с езика.


Титла: Re: Как да започна с програмирането?
Публикувано от: go_fire в Sep 19, 2012, 21:51
От това кратко заключение следват най-малко два въпроса:

  • Коя е подходящата ОС за 13 годишни и защо?
  • За колко годишни е ГНУ/Линукс и защо?
  • Какво общо има възрастта с ОС и защо?

Само за протокола, когато аз бях на 13, все още не бях работил с никаква ОС! И гледам не съм загинал. Едва на 14 (почти петнадесет) си купих шестнайска с ДОС 3,3 (нашия си, не чужд).


Титла: Re: Как да започна с програмирането?
Публикувано от: chen_dzen в Sep 21, 2012, 01:07
програмирането е еднакво сложно нещо под каквато и да било операционна система аз съм съгласен ,че нама значение възраста за избор на ОС . Моят съвет е наливай: Debian, GCC, NetBeansIDE или Eclipse и си ти ! Четеш и ръчкаш . ;D


Титла: Re: Как да започна с програмирането?
Публикувано от: zxz в Sep 24, 2012, 19:30
Аз пък ще ти препоръчам ц++ . От МГ-то в русе съм и точно това учим. Тука може да се смеят ама ще ти препоръчам Borland C++/Turbo C++ . Дърти са .. За дос са ама пък има супер голям хелп файл и може да минеш без досадни книги. За по нататък gcc или Дев Ц . А иначе от тука http://www.l00list.hit.bg/index.htm можеш да намериш всичко. Ние от там учим. Отначало е трудно но полсе става лесно. Пък и като го научиш, ще имаш една добра основа за джаба шарп даже и за питон..
ПП backtolife много ги тролиш  ;D :D


Титла: Re: Как да започна с програмирането?
Публикувано от: gat3way в Sep 25, 2012, 00:58
Я гледай ти, след като старата генерация всичките станаха макаджии, идва новото поколение :)


Титла: Re: Как да започна с програмирането?
Публикувано от: go_fire в Sep 25, 2012, 08:14
Винаги съм вярвал в Русе, пък и Пею (spacy01) също е от там. Преди няколко години се бях захванал с ц++ и нападнах на тия лекции. Едни от добрите са на български, но проблема им е, че са нацепени на 20 страници (ограничението 15МБ?) и не могат да се дръпнат с wget, освен ако разбира се не си поиграе човек да направи списък и да му го подаде.


Титла: Re: Как да започна с програмирането?
Публикувано от: plamen_f в Sep 25, 2012, 21:47
Чест и почитание на това малко девойче от града в който живея / не съм от тук и май съм за малко <= 25 години :D /. Едва ли детето си е мечтало за толкова сериозно обсъждана тема - съдя по броя постовете а не по съдържанието им.

Не знам какво да се направи но явно има нужда от повече теми свързани с тази тук. Да се обсъждат не само езиците ами и реализираните в тях техники за решение на определени проблеми!

Още веднъж - впечатлен съм!


Титла: Re: Как да започна с програмирането?
Публикувано от: rwk в Oct 27, 2014, 19:56
Здравейте,
Отскоро съм C++ мераклия! Може би тук не е най-подходящото място, но виждам, че има доста хора навътре с езика. Не успявам да се регистрирам в българския форум на C++   http://cpp-examples.com/forum/ucp.php?mode=register 
Та понеже ми е трудно да намеря друг активно действащ форум по темата, още по-малко пък чат ( защо ли е толкова трудно към един форум да се върже един IRC-чат не ми е много ясно ), реших да се пробвам тук. В какво се състои проблема: имам инсталиран Microsoft Visual Studio 2010 express. В него съм си написал една програмка Hello World в един валиден, сигурен съм, сравнявах го сто пъти с един друг, .cpp файл. Обаче, не мога и не мога да го стартирам. Не мога да накарам компилатора да го компилира и да го изпълни! В един клип видях, че това става с бутон "Build". По едно време тоя бутон, не помня точно как, ми цъфна най-после и на мен, опитах с него, но пак не става. След това преинсталирах компилатора и сега пак се мъча да го накарам да се появи.  Какво да правя?       


Титла: Re: Как да започна с програмирането?
Публикувано от: korea60 в Oct 27, 2014, 22:46
Не съм сигурен, защото не съм я виждал тази програма, но пробвай да я добавиш в windows path,
а може и да ти липсва инсталиран: gcc-c++, т.е MinGW. Ако компилираш фаила през cmd-то пак ли не става?


Титла: Re: Как да започна с програмирането?
Публикувано от: go_fire в Oct 28, 2014, 07:35
Съвсем леко си объркал форума, тази програма и ОС, на която върви са черна кутия и никой няма представа, какво правят. Корея правилно те препраща към MIngw и добрият стар gcc. Там ще сме една идея по-полезни. Сега не каза и за въпросният „Здравей свят“, той просто печати на конзола или общува с някакво win32api. Ако просто печати на конзола и компютъра ти е достъчно бърз, може и да не забележиш, кога е изчезнал прозореца след изпълнение.

Ще се опитаме да помогнем, колкото можем. Сложи кода да го разгледаме.


Титла: Re: Как да започна с програмирането?
Публикувано от: remotexx в Oct 28, 2014, 15:42
А проект създавате ли?
Само с отваряне на файл не става ... затова няма билд бутон предполагам..
Значи така
Файл.Нов.Проект
с/с++
И то само ще създаде проект и файл
и тогава копирате и поставяте текста т.е. кода вътре и билд
и пускате по форумите вече грешки яко има при компилирането...


Титла: Re: Как да започна с програмирането?
Публикувано от: rwk в Nov 29, 2014, 13:26
Здравейте, отново! Благодаря за съветите! Наистина след стартиране на projeckt се появи и опцията Build. Все още програмите не се изпълняват, но както и да е преминах на Dev компилатор. Там всичко си е ок. Е, не е готската майкрософтска среда за програмиране, ( извинявам се за кощунствените думи ), каквато е Visual C++ 2010, но за аматьор като мен е напълно достатъчно.

Бих искал обаче да попитам нещо друго - кои са подходящите антивирусни програми за десктоп, работещ под някаква Linux - дистрибуция? А вярно ли е, че когато работи под Linux, компютърът изобщо няма нужда от антивирусна програма?

поздрави     


Титла: Re: Как да започна с програмирането?
Публикувано от: NorthBridge в Nov 29, 2014, 13:52
А вярно ли е, че когато работи под Linux, компютърът изобщо няма нужда от антивирусна програма?

В общи линии да - поради наличието на 5 милиона различни дистрибуции, програми, версии на ядрото и т.н., е безмислено занимание да пишеш вирус който не знаеш дали изобщо ще може да тръгне. А уиндоуски вируси под Линукс не виреят.

Има една антивирусна - ClamAV, но тя се ползва когато ще споделяш файлове от линукски сървър на уиндоуски машини. За десктоп машина не ти трябва.

Поздрави и бира  [_]3


Титла: Re: Как да започна с програмирането?
Публикувано от: neter в Nov 29, 2014, 16:39
А уиндоуски вируси под Линукс не виреят.
Стига да не ползваш wine :) Тук ($2) бях споделил за един такъв случай.


Титла: Re: Как да започна с програмирането?
Публикувано от: NorthBridge в Nov 29, 2014, 17:08
Хах, яко  ;D Имаш ли идея как се казва, че ми стана интересно?


Титла: Re: Как да започна с програмирането?
Публикувано от: neter в Nov 29, 2014, 18:28
Имаш ли идея как се казва, че ми стана интересно?
Кое? Вирусчето ли? Никога не съм го виждал как се казва. В записките (които вече не пазя) тогава си бях записвал разни странни файлчета, дошли с инсталирането му и такива, създадени от него, но го зачистих с деинсталиране на wine и изтриване на ~/.wine папката и странните файлове извън нея, не съм ползвал антивирусна програма за целта. Но, ако ти е интересно, качи си wine (за предпочитане в система във виртуална машина), насваляй си вируси от Мрежата и ги нацъкай - все някой ще свърши някаква работа, било то и не веднага, а да се остави да поработи известно време. На мен не ми се занимава с опити с вируси.


Титла: Re: Как да започна с програмирането?
Публикувано от: remotexx в Nov 30, 2014, 03:09
Тия дни излезе и community версия на msvs 2013 която не е орязана като Експрес версията преди време и  е безплатна. А и да не забравяме че има един от най-добре вградените дебъгери, а това е най-доброто нещо за един начинаещ.

Повече подробности тук:
www.visualstudio.com/en-us/products/free-developer-offers-vs


Титла: Re: Как да започна с програмирането?
Публикувано от: rwk в Dec 05, 2014, 13:43
Един въпрос по темата. До момента, от дискусията става ясно, че изборът на първоначален език за програмиране на някой, който желае да се занимава професионално с информационни технологии, зависи до голяма степен от това, за какви цели и в какви сфери ще се прилагат програмните продукти, създадени от бъдещият програмист, най-общо казано. Да предположим, че начинаещият би желал, след време, ( след края на обучението си ) да създава софтуеър, управляващ комуникационни съоръжения. Такива комуникационни съоръжения, които осъществяват връзките между Земята и изкуствени спътници, изпратени в дълбокия космос, например. Или  тяхната поддръжка и обслужване. Какъв би бил подходящият избор на програмен език за начало на обучението му?


Титла: Re: Как да започна с програмирането?
Публикувано от: runtime в Dec 05, 2014, 14:46
Значи бича на новото поколение програмисти се корени в това, че те започват да пишат без да са на ясно с някои основни предмети, като "Изследване на операциите", "Теория на алгоритмите", "Компютърни архитектури", ДМ, ООП и т.н. ще пропусна да изреждам всички. Идеята е, че ако не осъзнаеш как да съставиш алгоритъма на една задача, било то и програмна няма значение на какво ще бъде изпълнена тя, то винаги крайния резултат ще е незадоволителен. Или по просто казано, ако нямаш мозък между ушите, защо ти е да имаш уста, която да говори. Да тя ще говори, но ще дрънка само глупости. За това би било добре да се запознаеш малко с теорията и тогава да започваш каквото и да било. Езика за програмиране не се избира само спрямо сферата на приложение на крайния продукт.

И в повечето случаи, при такива мащаби се работи с подходи, DFD, дигами на сценарии, сътрудничество, моделиране на процеси и т.н. и т.н. за това е добре да хвърлиш поглед и на Софтуерно инженерство.

П.С. Естествено не трябва да се стига до познания, като доказване на теоремата на Ферма ама бива малко от малко да се мине през тази материя.


Титла: Re: Как да започна с програмирането?
Публикувано от: PaperNick в Dec 05, 2014, 16:06
Един въпрос по темата.
И аз едно време си мислех, че просто трябва да науча някакъв език според това с което смятам да се занимавам. Но както runtime каза, трябва да се започне малко по-отдалеч. Това лято изкарах първия курс от специализацията Fundamentals of Computing от Rice University в Coursera ($2). Лекторите са супер печени и материала е поднесен по много свеж начин.

Ето ги и трите курса от специализацията ($2):
  • An Introduction to Interactive Programming in Python ($2)
  • Principles of Computing ($2)
  • Algorithmic Thinking ($2)

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

Между другото, в тези курсове математика не липсва ;)

Edit:
Да вметна, че курсовете са напълно безплатни (освен ако не искаш потвърден сертификат).
Просто отиваш на страницата на курса, записваш някоя дата и почваш.


Титла: Re: Как да започна с програмирането?
Публикувано от: runtime в Dec 05, 2014, 16:20
Е тя математиката си е неизменна част  [_]3 Въпреки, че много "бъдещи" програмисти смятат, че тя е излишна, аз няма как да подкрепям такова твърдение. Ние имахме Висша 1,2,3, дискретна, изкуствен интелект, изследване на операциите, числени методи, вероятности и статистика и вече даже не си спомням за другите, но нямаше семестър в който да нямаше нещо свързано с математическите науки :) И да си призная особено сега като почнах да се занимавам с embedded устройства взеха да се отблагодаряват знанията... Особено, като в един проект ми се наложи да ползвам неврони мрежи (в частност Encog фреймуорка).


P.S. Чудно ми е момичето след близо 3 години дали все още иска да е програмист :-D


Титла: Re: Как да започна с програмирането?
Публикувано от: NorthBridge в Dec 05, 2014, 17:40
Е тя математиката си е неизменна част  [_]3 Въпреки, че много "бъдещи" програмисти смятат, че тя е излишна, аз няма как да подкрепям такова твърдение. Ние имахме Висша 1,2,3, дискретна, изкуствен интелект, изследване на операциите, числени методи, вероятности и статистика

Аз пък имам малко по-различно виждане. Нищо лошо няма в теорията и малко по-абстрактните принципи, но само с четене не става. С чиста съвест човек който си няма представа от програмиране може да изяде половин библиотечка за ООП, алгоритми, шаблони, архитектура, добри и лоши практики, сигурност и т.н., но това няма да му помогне без да си изцапа ръцете и да напише нещо. Същото важи с пълна сила и в обратна посока - може да изпишеш планини от код, без да знаеш грам теория (или почти), но резултатът ще е близко до плачевен. На такива хора им викат code monkey-та.

Та в крайна сметка какъв е най-добрия вариант? По малко и от двете. Баланс между четене на теория, книги и т.н. и писане на проекти, библиотеки и собствени експерименти. Впоследствие като ти потрябва нещо друго - хващаш съответната книжка, прочиташ я и продължаваш с практиката. Нищо лошо няма в това човек да знае какво е матрица, вектор и интеграл поне за обща култура, но 3 висши математики е прекалено за един средностатистически програмист, освен ако няма да ги ползва всеки ден.

Поздрави и бира  [_]3


Титла: Re: Как да започна с програмирането?
Публикувано от: rwk в Jan 15, 2015, 07:34
Още един въпрос: какво означава, ако сайт от типа https, вместо символ зелено катинарче пред него, има жълто триъгълниче? 


Титла: Re: Как да започна с програмирането?
Публикувано от: ddantgwyn в Jan 15, 2015, 08:18
Още един въпрос: какво означава, ако сайт от типа https, вместо символ зелено катинарче пред него, има жълто триъгълниче?

Че трябва да се отнасяш с повишено внимание към този сайт ::)

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


Титла: Re: Как да започна с програмирането?
Публикувано от: rwk в Jan 15, 2015, 08:52
И какво трябва да се направи за да се върне отново зеленото катинарче?


Титла: Re: Как да започна с програмирането?
Публикувано от: ddantgwyn в Jan 15, 2015, 18:22
И какво трябва да се направи за да се върне отново зеленото катинарче?

Ти лично -- нищо, ако причината за това е тази, която съм споменал.

Освен може би да добавиш Security Exceptions, когато браузърът те попита какво да правиш. Но не съмубеден, че това ще промени нещо, но може да опиташ и да кажеш какъв е резултата.


Титла: Re: Как да започна с програмирането?
Публикувано от: 4096bits в Jan 15, 2015, 19:18
Не мисля, че на 13 години С ще е сложен за научаване. Всички езици за програмиране са просто един синстаксис. Алгоритмите са друго нещо. Те са програмирането,
И смятам, че точно 13 години са възраст, когато още човешкия мозък не е обременен от модели на мислене и може да учи и научава лесно, защото е на сто процента свободен от това. Учил съм С малко по-голям и ми беше супер лесно. Доста по-късно се хванах с други езици, но се бях научил да мисля на С. Синтаксиса на другите ме объркваше.
Нека почне, пък тя ще си прецени, сложно ли ѝ е все още или се справя. Не подценявайте днешните деца. Нямат нищо общо с нас. Вероятно е по-умна от всички ни.


Титла: Re: Как да започна с програмирането?
Публикувано от: daniel_vulchev в Jan 15, 2015, 22:22
Не се ограничавай само със С и С плюс плюс ползват се навсякъде  , ако наистина мислиш като пораснеш да продължиш с програмиране чети и литератури свързани с проектиране на програми , операционни системи  как работят  стари езици също не е лошо да разгледаш. По важно е да си развиеш мисленето отколкото да запомниш на изуст всички  екстри на езика за програмиране. Дали програмираш на паскал джава или с плюс плюс никакво значение няма като не знаеш как работи останалата част  от компютърния свят.      започни с един няма значение с кой на всички примера е с hello word и въобще първите десет примера са едни и същи :D в последствие който ти допада наблегни на него . Успех!


Титла: Re: Как да започна с програмирането?
Публикувано от: gat3way в Jan 15, 2015, 23:44
Какви алгоритми, какво математическо мислене, не мога да ги разбера тия твърдения, ужасно е скучно и хората, които прекалено много ми дълбаят такива разкази органично не мога да ги понасям. Винаги ми е било ужасно досадно това, още от ученик като ходих на олимпиади. Да хубаво, има много елегантни и хитри решения на разни проблеми, обаче да пукна ако някога се прехласна толкова че което и от това да ми стане интересно без да е свързано с някакъв конкретен проблем, който трябва да се решава, самоцелно набиване на глупости в главата. Има две неща, които не мога да понасям и считам че са формулирани и религиозно следвани от пълни чекиджии - complexity theory нещата и малоумните design patterns. Да, в определени случаи те може и да са много релевантни, обаче първите са абсолютно ирелевантни за програмен код който се изпълнява за милисекунди върху малък dataset и рядко и ми е през оная работа колко елегантен O(N) алгоритъм ги решавал по-добре и това става в 99% от случаите в днешния софтуер. Design pattern-ите от друга страна превръщат хората в малоумни зомбита-сектанти, които не мислят, а повтарят и тази религия е наложена най-вече от корпоративни тъпаци, които се интересуват повече от bus factor-а, отколкото нещата им да си вършат работата като хората.

Това казано, важното е да можеш да си представиш проблема и решението му ясно и в този ред на мисли няма нищо лошо да се разтърсиш за оптимално решение на (част от) него щом се налага, тук пак се намесват чекиджиите, които ти обясняват глупости, в интерес на истината това мислене е от 70-те години, когато не е имало интернет, съответно не е имало google и не е имало stackoverflow. Това само по себе си не е някакво свръх-велико умение.

И между другото - да - C е много хубав език като за въведение в програмирането, напротив на това което разни хора казват.

Апропо първият елементарен пример с алгоритмични хора, който отидох и видях в списъка с последните мнения в bgdev:

http://forums.bgdev.org/index.php?showtopic=45453&st=0

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


Титла: Re: Как да започна с програмирането?
Публикувано от: remotexx в Jan 16, 2015, 17:58
@gat3way Само не разбрах защо с 2 цикъла, като може и с един?!
А дали ще е с делене или побитово иместване това да подробности на реализацията...


Титла: Re: Как да започна с програмирането?
Публикувано от: daniel_vulchev в Jan 16, 2015, 20:21
Абе момичето ви пита за съвет много сте се отплеснали по темата ! За мен лично най-добрия вариант като е на 13 да разгледа езиците за програмиране да прочете по лесна литература как работят въобще компютрите и какво се случва вътре в машината. Програмирането в последствие може да си го развие в определени езици . Математиката развива мисленето няма да пише никъде редове на фурие и тем подобни. Реално за да ползва и математиката в програмирането ако се развие в бъдеще ще е след 20 години. По скоро на начинаещ програмист му трябват доста познания свързани с компютърния свят.  Всичко останало от рода на математики и разни тактики за създаване на проекти само ще го усъвършенстват. Има хора които смятат интеграли, матрици  , детерминанти , редове на фурие на ум но това не ги прави програмисти. Като цяло за програмирането трябва яко логика , а като седнеш да пишеш дали на жава , с плюс , паскал , делфи , асемблери и т.н. отваряш  справочниците и си четеш какво ти трябва и какво да пишеш. Програма за две плюс две равно на три се учат за да се запознаеш с езика и ако ти се отдава може и да направиш нещо на него ! [_]3


Титла: Re: Как да започна с програмирането?
Публикувано от: gat3way в Jan 16, 2015, 22:44
Защото с два цикъла пишеш няколко реда код по-малко, а всеки нормален оптимизиращ компилатор ще генерира същият изход.

Това освен ако разбира се не проявиш глупостта да направиш нещо от сорта на if ((bit>>counter)&1) printf("1"); else printf("0"); или някаква подобна дивотия, тогава компилаторът лесно може да откаже да unroll-не цикъла.



Титла: Re: Как да започна с програмирането?
Публикувано от: rwk в Jan 22, 2015, 17:05
И какво трябва да се направи за да се върне отново зеленото катинарче?

Ти лично -- нищо, ако причината за това е тази, която съм споменал.

Освен може би да добавиш Security Exceptions, когато браузърът те попита какво да правиш. Но не съмубеден, че това ще промени нещо, но може да опиташ и да кажеш какъв е резултата.


Интересно явление! Пред URL-а на някои блогове в Wordpress излиза предупредително жълто триъгълниче, а пред други не. Прави впечатлиние, че тези от блоговете, занимаващи се с тортички, картички, кученца, котенца и пр., са си със зелено катинарче, т. е. те са си нормални и с тях всичко е ок. Тези, обаче, които са имали неблагоразумието да се занимават с политика, и особено тези, които са си позволили да изкажат някаква критика относно руската политика, всички до един без изключение се оказват "неблагонадежди". А тези, които се занимават с политика, но подкрепят руската позиция, по някакъв чудодеен начин са запазили "зеления" си статут на сигурност и надеждност. Особено ярък е случаят с  infobalkani.wordpress.com     


Титла: Re: Как да започна с програмирането?
Публикувано от: go_fire в Jan 22, 2015, 17:50
Rwk идея нямам защо пишеш точно в тази тема. На тези Infobalkani сертификата им е абсолютно валиден, което може да научиш и сам като цъкнеш на него.

Гейт споменавал съм и другаде, но като перловски човек, навсякъде ми се набиваше в главата — цикли, цикли, цикли. Ракурсивните са зло! Те са бавни! Не ги ползвайте! Всяка функция викаща сама себе си може да бъде заменена с цикъл, дори да не е очевидно всеки път. Ако сте особено извратени можете дори if да замените с for. Цикъла „за“ е велик, осланяйте се на него. И така нататък.

И така до миналата година, когато изведнъж Кънев направи доклад за сметосъбирачите на ОФ'13. И какво се оказа в един момент? Боклучиите имат особен проблем с циклите. И колкото и гениални решения да измислят, колкото  и ракетна наука (буквално) да се влага в тях, проблема си остава. Течове на памет, грешки, много несгоди произлизат. И май се оказва, че на практика ракурсивните функции не са чак такова зло, нищо че няма да решаваме никога в реалността редичка на Фибоначи. Програмата може наистина да стане малко по-бавна, но пък много по-стабилна.

Побитовото смятане е доста по-бърз метод например за запазване на състояние (в хиляди пъти), от колкото да речем локална променлива. Стига езика да ни го позволява де, защото май не съм го виждал в нещо по-модерно от C++.


Титла: Re: Как да започна с програмирането?
Публикувано от: gat3way в Jan 22, 2015, 17:54
При все че нашисткото тролене ми е доста досадно, причината е тривиална и не е конспиративна. Зелените катинарчета са когато сертификата е с EV, за да ти изкарат такъв, критериите са малко по-стриктни. Съответно и струват повече пари.


Титла: Re: Как да започна с програмирането?
Публикувано от: gat3way в Jan 23, 2015, 01:57
Цитат
Гейт споменавал съм и другаде, но като перловски човек, навсякъде ми се набиваше в главата — цикли, цикли, цикли. Ракурсивните са зло! Те са бавни! Не ги ползвайте! Всяка функция викаща сама себе си може да бъде заменена с цикъл, дори да не е очевидно всеки път. Ако сте особено извратени можете дори if да замените с for. Цикъла „за“ е велик, осланяйте се на него. И така нататък.

И така до миналата година, когато изведнъж Кънев направи доклад за сметосъбирачите на ОФ'13. И какво се оказа в един момент? Боклучиите имат особен проблем с циклите. И колкото и гениални решения да измислят, колкото  и ракетна наука (буквално) да се влага в тях, проблема си остава. Течове на памет, грешки, много несгоди произлизат. И май се оказва, че на практика ракурсивните функции не са чак такова зло, нищо че няма да решаваме никога в реалността редичка на Фибоначи. Програмата може наистина да стане малко по-бавна, но пък много по-стабилна.


Сега на първо време ще направя уточнението че говоря от гледна точка на C - не за друго, а защото при C  (апропо и при всеки не-JIT, не-интерпретаторен език) е най-лесно да разбереш какво всъщност става - дизасемблираш полученото binary и с малко общи познания за архитектурата и справки с документация по въпроса, имаш някаква относително добра идея какво става.

Рекурсивни срещу итеративни решения е нещо много дъвкано, безсмислено е да се повтаря, но все пак в общият случай рекурсивното решение е с порядъци по-бавно. Причината че колкото по-"навътре" влизаш, толкова повече алгоритъма става от cpu-bound към memory-bound, защото трябва да пазиш стек фреймовете някъде, за да може като привърши функцията да въстановиш регистрите както са си били преди да я изпълниш, да си вземеш изхода от функцията и т.н. Това дори да не е толкова "дебело", демек да не се наложи да се похабят повече от няколко десетки килобайта за целта, пак е много по-бавно. Итеративното решение на псевдоасемблер се свежда до нещо от сорта на това:

Код:
loop: cmp reg1, max
        je end
        ...
        inc reg1
end: ...

Рекурсивното се свежда до нещо от сорта на това:

Код:
              ...
              cmp reg1,smth
              jne next
              ret
next:       
              ...
              push reg1
              push reg2
              ...
              call function
              pop reg1
              pop reg2
              ...

Разликата е че във вторият случай имаш много повече четене и писане в паметта (за да пазиш в стека състоянието на регистрите, return адреса, ако се налага стойността която връща функцията и тем подобни глупости). В първият случай оперираш върху регистри. Хората масово не си дават сметка колко бавен е достъпът до паметта. Ако имаш късмет и това нещо ти е в L1/L2 кеша, ще е десетки до стотици пъти по-бавно от достъпването на регистър. Ако нямаш късмет и не е кеширано - ами честито, стотици до хиляди до милиони ако е swap-нато на диска. Това всичкото също така изключва момента че големината на стека не е безкрайна и ако "слизаш" много "навътре" рано или късно ще те бият през ръцете.

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

Тааа за тоя java проблем не знам за какво иде реч, така че не мога да го коментирам.

Цитат
Побитовото смятане е доста по-бърз метод например за запазване на състояние (в хиляди пъти), от колкото да речем локална променлива. Стига езика да ни го позволява де, защото май не съм го виждал в нещо по-модерно от C++.

Запазване на състояние?

Побитовите операции вършат едно и също в който и да било език. Определено не мисля че това се свежда само до C/C++, аз поне не знам за език, в който да няма побитови операции.


Титла: Re: Как да започна с програмирането?
Публикувано от: go_fire в Jan 23, 2015, 09:49
За побитовите операции, разбира се, не съм го измислил аз, нямам толкова мозък, ако имах, ехе-е-е. Знам го от този прекрасен човек:

http://www.cphpvb.net/pik-3/149-побитови-операции/ ($2)

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

Това е прекрастният доклад на Skanev за сметосъбирачите:

https://va.ludost.net/files/of2013/Day2/Hall_Sofia/02.Garbage Collection - Стефан Кънев.mp4 ($2)

Не се отнася само за Жаба, а за всичко с управлявана памет. Може да ти е от полза, ако някой ден пишеш на нещо различно от Ц. Може и да не ти е. За всеки случай, той е много забавен човек и си струва да бъде гледан, въпреки, че обикновено съм точно обратното на неговото мнение.


Титла: Re: Как да започна с програмирането?
Публикувано от: rwk в Jan 24, 2015, 15:15
Здравейте,

Не съм сигурен, че мястото на този пост е тук, в тази тема, но ще рискувам.

От почти две години съм активен интернет-потребител, ( иначе имам персонален компютър от 2006, но до март 2013 г. ползвах интернет от клубове, библиотеки свободните wi-fi зони  и т. н., първоначална компютърна грамотност получих през 1987 г. още като ученик в техникума на един Правец, след това на отделни курсове за компютърна грамотност  ) понаучих някои неща за компютрите, за операционните системи, за програмните езици и дори почти схванах разликите между обикновеното функционално програмиране на бейсик от 80-те години и по-модерното обектно ориентирано програмиране на С++.

Като резултат от "повишената" ми IT грамотност наскоро ми хрумна един "гениален", според мен, план. И аз като онова момиченце от рекламата ( както е добре известно с напредване на възрастта хората се вдетиняват ) не мога да се сдържа да не го споделя със специалисти и да разбера какво мислят те по въпроса.

Та така, ето го значи, планът:

1-во: купувам един готин лаптоп с добри характеристики 
- 2,2 - 2,5 GHz процесор
- 4 GB RAM
- видеокарта с най-малко 2 GB собствена памет, а защо не и със собствено захранване
- 1000 GB HDD

2-ро изкарвам някакъв курс за работа с някоя Linux дистрибуция

3-то инсталирам на новозакупения гореописан лаптоп последната версия на ... Debian да речем

4-то разучавам в подробности Debian и се научавам да го управлявам, контролирам и променям както си искам
( стигам даже до там, че променям някои файлове в ядрото по
собствено усмотрение - нали Linux-а е отворен код, и всеки, който е достатъчно компетентен може да го "индивидуализира"според собствения си вкус )

5-то инсталирам Apache на лаптопа т. е. превръщам лаптопа
си в един вид нещо като сървър   

6-то прехвърлям ( мигрирам ) безплатния си блог от сайта на Wordpress на ... собствения си лаптоп и така сам си стопанисвам сайта без да плащам за хостване

Как ви се струва?

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


Титла: Re: Как да започна с програмирането?
Публикувано от: go_fire в Jan 24, 2015, 16:21
Здрасти,

Малко по-млад съм от теб и интересно, че прочетох мнението ти от eww. Забавно ми е да разбера, че някой от твоя набор е русофоб. По принцип всички от 40 нагоре би трябвало да са -фили, поне наблюденията са ми такива. И обратното за тези от 40 надолу. Приятно е да видиш, че има разнообразие.

Поставяш множество въпроси. С мила усмивка си спомням, когато бях млад и аз си задавах подобни. Но нека караме подред.

Щом имаш закваска с Бъзик, а и си попрегледал Ц++ то имаш нужната основа да започнеш с програмиране за мрежата (например на php). Малко, много малко ще ти трябва. Знам го, защото моята история, не е много по-различна.

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

Но това не е само до ВП. Изобщо малко вероятно да ти се наложи нещо да програмираш, освен може би да си автоматизираш задачки, но това е използваемо единствено, ако работиш нещо зависимо 100% от компютри. 99% да са и автоматизациите почти губят смисъл. Хубавото им е, че са лесни.

Ядрото няма да хакваш, повярвай ми. Това го правят едва, едва, едва няколко хиляди човека в целият свят. А и там си трябва майсторско владение на Ц. Виж друго е да си го индивидуализираш, но това е съвсем различно и не изисква програмиране.

Така за гениалната идея. Има нюанси и е добре да се разгледат подробно. Ако ще се ползва за web server, то видео-ускорител изобщо не ти е необходим. Никакъв. Да наистина. Използваем е в някакви много частни случаи, например да генерираш картинки в реално време, ама едва ли библиотеката, която го прави, ще е оптимизирана да го прави. Същото се отнася и за прекодиране на видео-съдържание. Обаче не смятам, че се опитваш да конкурираш тубата. Едва ли имаш такава идея. Безумие е. 

Второ диска е тясно място, ако можеш да си позволиш ssd, най-добре. И задължително непрекъснато архивиране. Не знаеш, кога може да гръмне. А днес си е направо задължително да си замине.

По принцип лаптопите не са добър избор за подобна дейност. Те са оптимизирани да са мобилни, обаче сървърите седят на едно място и никъде не мърдат и на милиметър. Какъвто и лаптоп да вземеш за същите пари ще можеш да вземеш настолна машина с много по-добри параметри. Особено паметта и диска играят значителна роля. А още по-добре марков сървър втора ръка. Единственият плюс е, че ще спестиш от UPS. Да и от сметката за ток, но не толкова.

Точно тока е най-големият кахър. Сметката за тока дори на лаптоп е по-скъпа от най-скъпото споделено домуване няколко пъти и определено ще могат да се намерят заделени машини нисък клас за същите пари. А, ако е настолна машина или сървър то сметката хвръква поне тройно. И това е преди сметката за достъп до Интернет.

А там ти е следващият проблем. Необходим ти е статичен адрес. Обикновено такова нещо не се дава на потребителски планове. Но дори тези, които дават, проблем има. И той се казва upload. Хм, да при потребителските планове той е мизерен, а за web server това е, което те интересува. Значи ще ти трябва скъп план. Е ми до тук вече стигнахме цената на облачна услуга без да броим първоначалната инвестицияи поддръжката на машината.

---

Куро̀совете за ГНУ/Линукс са пълна скръб. По-добре мини без тях.

Ами това е за сега.


Титла: Re: Как да започна с програмирането?
Публикувано от: 4096bits в Jan 24, 2015, 18:15
Да се започне от причината. Искаш да си хостваш сам Уърдпреса. Защо? Защо? Не си доволен от услугата, искат много? Все трябва да има основателна причина за това ти желание.
Ако причината обаче, е да се научиш как стават нещата.... забрави. Няма да стане така. Трябва да имаш цел, проект, нещо, което искаш да направиш. Не просто да изпляскаш сайта си на собствен сървър, защото това, както описа "колегата" има не малко недостатъци. Не вадиш ли пари от това, не си заслужава. Но аз исках да кажа нещо за мотивацията. За целта. Няма да научиш нещо просто, защото искаш да го знаеш. Повярвай ми, пробвал съм го неведнъж.


Титла: Re: Как да започна с програмирането?
Публикувано от: rwk в Mar 23, 2015, 22:06
... са звинявам пак чи ... таковата ... ша задам тъп въпрос, убачи кът няа куго да питъ чиляк ... сиа начи ... ни мой ли да има такъва пруфезия кът да ричем ... ъъ ... "пумошник-IT-спизиалист"? ... ай тъй на за по-простити ора ... такъви дет са учили-недоучили, разбрали-недоразбрали и т. н. и т. н. Къкту, дъ ричем, дохтурити си имът миисински систри, пък 'двукатити помошник-двукати - некой дет да върши черната, бълявата раута, дет ако я вършат истинските IT-специалисти ( софтуеърни инжилери, дъ ричем ) шси загубат многу времи? Ъ? "Пумошник-IT-спизиалист" изкарал там некъф курс по С++ дъ ричем и зел свидетелству или некъф сиртификат за определено ниво на владеене - както има при езиците - ниво А, ниво В и т. н.? Туй възможну лий?     


Титла: Re: Как да започна с програмирането?
Публикувано от: console в Mar 24, 2015, 10:18
... са звинявам пак чи ... таковата ... ша задам тъп въпрос, убачи кът няа куго да питъ чиляк ... сиа начи ... ни мой ли да има такъва пруфезия кът да ричем ... ъъ ... "пумошник-IT-спизиалист"? ... ай тъй на за по-простити ора ... такъви дет са учили-недоучили, разбрали-недоразбрали и т. н. и т. н. Къкту, дъ ричем, дохтурити си имът миисински систри, пък 'двукатити помошник-двукати - некой дет да върши черната, бълявата раута, дет ако я вършат истинските IT-специалисти ( софтуеърни инжилери, дъ ричем ) шси загубат многу времи? Ъ? "Пумошник-IT-спизиалист" изкарал там некъф курс по С++ дъ ричем и зел свидетелству или некъф сиртификат за определено ниво на владеене - както има при езиците - ниво А, ниво В и т. н.? Туй възможну лий?   

Това мнение на какъв език е написано?


Титла: Re: Как да започна с програмирането?
Публикувано от: 4096bits в Mar 24, 2015, 13:08
Не мисля, че малко познания по C++ ще са достатъчни за да си помощник IT специалист. Каквото и да означава това. Аз не мога да измисля, какво би правил помощника. И какъв IT специалист.? Програмист, системен админ, мрежов админ, уеб дизайнер, уеб програмист, бази данни, по сигурността? Тук в България уеб дизайнера и този дето пише кода се съвместяват в едно, незнайно защо, но ... друга тема. Та със C++ май идва програмиста на преден план.
Аз като назнача човек, очаквам като му се постави задача, да се изпълни. Един курс не зная дали дава достатъчно, за да можа да се случи това. Работодателя да знае, че има кой да върши работата, а и да не виси на ръцете на други хора. Защото хора се назначават, когато вече няма на къде. Когато времето не стига за да могат сегашните да се справят. Не мисля, че някой ще има време за доубочение. Не зная, какво се преподава по такива курсове, не съм ходил, но предполагам, че е синтаксис, основните неща там и няколко how to. Сигурно зависи и от работата. Преди време щях да започвам работа в БНТ и много се харесахме с пичовете там, ама взеха някакъв новозавършил студент. Само заради дипломата. Та се запитах тогава, що тези дето взеха решението не ми направиха интервюто, но и това е друга тема. FreeBSD. Та те бяха наясно, че не съм и докосвал такава система, но ме питаха, дали съм готов да чета по 50 страници на ден на английски разна литература, дето щели да ми предложат. Бях, разбира се.
Та има го и този вариант. Зависи къде ще се цаниш. Аз се радвам, че не се получи, защото никога нямаше да изкарвам толкова пари, колкото сега.


Титла: Re: Как да започна с програмирането?
Публикувано от: go_fire в Mar 24, 2015, 13:10
Rwk да ти кажа, че такова жу̀вотно ИТ специалист не съществува и едва ли може да има помощник. Ако някой ми каже, че работи като „ай ти шпешалист“ ще реша, че най-вероятно и той самият не знае, какво работи, но това, което прави е само най-повърхностно свързано по някакъв начин с компоти. По-скоро носещите подобно звание са тези, които наричаш „мед. сестри“ и „черноработници“, като само в движение споменавам, че за мед. сестра все пак се изисква да имаш някаква компетенция.

***

5. С 4ка сме писали заедно. Написаното веднага ми припомни случка, когато кандидатсвах в държавна структура (по-скоро общинска, но карай). Мястото беше по заместване, а парите не бяха лоши, макар под това, което бих поискал. Аз го  приемах като личен ангажимет към титуляра  всичко да е наред до завръщането му. Можех да мина и без тази работа, ситуацията за тях беше спешна, а пък аз имах възможност да навляза веднага в конкретиката, макар да не бях работил точно това. Началството също ме хареса. Още повече бяха организирали туко що приключил конкурс с плачевни резултати, а аз им падах от небето. В последният възможен момент се намесиха някакви интриги и мястото получи човек, който те самите бяха оценили като безнадежден, който никога не бе работил нищо подобно, беше неподготвен и нямаше да свърши работа. Но пък имаше по-добра диплома от моята.

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


Титла: Re: Как да започна с програмирането?
Публикувано от: 4096bits в Mar 24, 2015, 13:14
Ммда! Този термин е измислен от хора, дето и хабер си нямат понятие поне малко от съществото на тези технологии. Само дето ги ползват.


Титла: Re: Как да започна с програмирането?
Публикувано от: rwk в Apr 04, 2015, 09:48
Пак малку тъп въпрос, ма кат сам я пудкарал ... начи нъ ино място в нета ( https://www.youtube.com/watch?v=vHeeXI84GIA )  видех един дет вика, чи целия сайт на youtube.com ВЕЧЕ бил ИЗЦЯЛО написан на езика Python. Ни знам дъл е вярно, обаче аз кат проверих сайта на "тубата" с инспектора на браузъра - гледам ... един изцяло HTML-документ ... ъ чи ... къто как ша можи да са разбере дали е написан на HTML или на Python?     


Титла: Re: Как да започна с програмирането?
Публикувано от: A4o в Apr 04, 2015, 11:15
Здравейте! Искам да питам за мнението ви по един въпрос. Но първо малко предистория. Имам регистрация тук отдавна - 2009 - около 2 години бях само с Ubuntu на компа, без Windows(активно следях и сайта на gat3way :)). Имах интерес към тези неща, но животът ми се разви по друг начин - жена, много работа, изоставих линукса и компютрите като цяло и бачках като техник в една фирма доставчик на интернет(доста добра заплата взимах). Но преди известно време ни купи друга фирма, нещата почнаха да се скапват, с жената се разделихме и ми остана свободно време. От няколко месеца се самообразовам с видеата на Телерик и Софтуни и мога да кажа, че имам идея от С# и мноооого малкo от Java. Бачкам 2 на 2 и в свободното си време програмирам. Питах тук-там за работа как стоят нещата и в общи линии трябва да имам 2 години опит или поне 2 години в университет по тази специалност. Тук идва проблема, че аз вече уча друго и няма вариант да го изоставя, за да запиша наново(правил съм го вече и съжалявам адски много). Уча дистанционно и ще запиша догодина на Телерик курса(тая година изпуснах срока за малко), както и в на Софтуни курсовете, но... Силно желая да си сменя работата. Как мислите вие - има ли вариант да си намеря по-бързо работа като програмист, за да натрупам опит? Защото този вариант в който съм сега пак научавам нещо, но друго е да го видя в работна среда. С този пост не си търся работа - старата не мога да я напусна така лесно - трябва ми предизвестие и т.н., но след 3-4 месеца ще мога и се чудя има ли друга фирма като Телерик, която сама обучава кадрите си, или пък търси хора с познания, но без опит? На 27 години съм, ако има значение.


Титла: Re: Как да започна с програмирането?
Публикувано от: 4096bits в Apr 04, 2015, 13:00
Пак малку тъп въпрос, ма кат сам я пудкарал ... начи нъ ино място в нета ( https://www.youtube.com/watch?v=vHeeXI84GIA )  видех един дет вика, чи целия сайт на youtube.com ВЕЧЕ бил ИЗЦЯЛО написан на езика Python. Ни знам дъл е вярно, обаче аз кат проверих сайта на "тубата" с инспектора на браузъра - гледам ... един изцяло HTML-документ ... ъ чи ... къто как ша можи да са разбере дали е написан на HTML или на Python?   
До браузъра винаги достина почти само HTML. Кода на страницата може да се генерира от всичко на сървъра. Буквално. Та ти виждаш само страницата, евентуално JS и CSS.

Здравейте! Искам да питам за мнението ви по един въпрос. Но първо малко предистория. Имам регистрация тук отдавна - 2009 - около 2 години бях само с Ubuntu на компа, без Windows(активно следях и сайта на gat3way :)). Имах интерес към тези неща, но животът ми се разви по друг начин - жена, много работа, изоставих линукса и компютрите като цяло и бачках като техник в една фирма доставчик на интернет(доста добра заплата взимах). Но преди известно време ни купи друга фирма, нещата почнаха да се скапват, с жената се разделихме и ми остана свободно време. От няколко месеца се самообразовам с видеата на Телерик и Софтуни и мога да кажа, че имам идея от С# и мноооого малкo от Java. Бачкам 2 на 2 и в свободното си време програмирам. Питах тук-там за работа как стоят нещата и в общи линии трябва да имам 2 години опит или поне 2 години в университет по тази специалност. Тук идва проблема, че аз вече уча друго и няма вариант да го изоставя, за да запиша наново(правил съм го вече и съжалявам адски много). Уча дистанционно и ще запиша догодина на Телерик курса(тая година изпуснах срока за малко), както и в на Софтуни курсовете, но... Силно желая да си сменя работата. Как мислите вие - има ли вариант да си намеря по-бързо работа като програмист, за да натрупам опит? Защото този вариант в който съм сега пак научавам нещо, но друго е да го видя в работна среда. С този пост не си търся работа - старата не мога да я напусна така лесно - трябва ми предизвестие и т.н., но след 3-4 месеца ще мога и се чудя има ли друга фирма като Телерик, която сама обучава кадрите си, или пък търси хора с познания, но без опит? На 27 години съм, ако има значение.

Ами трябва да можеш да изпълняваш поставените ти задачи. Това "имам идея от C#" няма да се хареса на никой работодател, когато стане въпрос за уменията ти.


Титла: Re: Как да започна с програмирането?
Публикувано от: rwk в Apr 04, 2015, 17:23
   
[/quote]До браузъра винаги достина почти само HTML. Кода на страницата може да се генерира от всичко на сървъра. Буквално. Та ти виждаш само страницата, евентуално JS и CSS.

Доколкото мога да разбера, всеки уебсайт се съхранявя, стопанисва, ( хоства ) на твърдия диск на някакъв компютър наречен "сървър", предполагам под формата на html-файл. Пак доколкото разбирам, в този html-файл може да бъде "вмъкнат" или по научному казано "имплементиран" някакъв текст ( код ) на някакъв програмен език, различен от html. Тъй. Значи имаме един html-файл, който е съставен от различни части: html, JS, CSS плюс още две части ( код ) едната написана на C++, втората написана на ... Python да речем. Добре. Когато html-файла се зареди ( където и да се зарежда, най-вероятно в RAM-a ), браузърът прочита, "интерпретира" и съответно визуализира на монитора, частта от html-файла, която е написана на html, JS и CSS. Дотук - добре! Но какво става с другите две части, написани на C++ и Python? Тях кой ги чете, кой ги интерпретира?         


Титла: Re: Как да започна с програмирането?
Публикувано от: gat3way в Apr 04, 2015, 19:30
Ем просто - значи без значение дали ядеш китайска, индийска, италианска, мароканска кухня, изхода, демек това което ходи в тоалетната се описва с една и съща дума. Дори въпросният изход да го изконсумираш отново, пак ще върнеш нещо което ще се описва със същата дума. Т.е от гледна точка на тоалетната, няма никакво значение какво точно си ял, защото очаква нещата да му ги сервираш приблизително в един и същ вид. Та сега замени храната с кода, готвача с девелопера, кенефа с браузъра и лайната със сбирщината HTML/JS/CSS които браузъра може да визуализира и всичко става много ясно.


Титла: Re: Как да започна с програмирането?
Публикувано от: PaperNick в Apr 04, 2015, 20:18
Ахахаха, отдавна не се бях смял така. Страхотна аналогия, браво ;D


Титла: Re: Как да започна с програмирането?
Публикувано от: vstoykov в Apr 04, 2015, 20:40
Има едно нещо, което англоговорящите му казват "analysis paralysis" или "decision paralysis". В българския език не ми е известно да има утвърдени термини. "Решителна парализа" и "парализа, поради свърханализиране" не ми звучат много добре.

Експеримент. ($2)

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

И още по темата ($2).

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

Няма рязка граница между хора с ADHD и такива без ADHD. И по въпроса доколко ADHD е "disorder" - тук ($2).

Григор Гачев може и да не се съгласи (чел съм какво е писал по темата ($2)), обаче в много случаи хората със симптоми на ADHD се справят с някои задачи по-добре ($2). И като гледам смият той какво е написал... неговото творчество е контрааргумент на тезата му.


Титла: Re: Как да започна с програмирането?
Публикувано от: A4o в Apr 05, 2015, 10:38
Ами трябва да можеш да изпълняваш поставените ти задачи. Това "имам идея от C#" няма да се хареса на никой работодател, когато стане въпрос за уменията ти.
Съгласен съм. Прочетох си още веднъж поста и потърсих в нета за код на цяла програма. Явно избързах с въпроса.


Титла: Re: Как да започна с програмирането?
Публикувано от: go_fire в Apr 19, 2015, 14:35
@А40 възрастта ти не е толкова от значение. Обаче бих те посъветвал да завършиш нещо от сорта на Софтуни, Софтакад или подобно, за да е сигурно, че имаш необходимото знание, за да започнеш работа. Все пак внимавай, какво записваш. Не всички „академии“ стават за нещо и сертификатите им имат някаква стойност.

Иначе следваш правилният начин. Програмиране всеки ден и по много е начина. И разбира се, не просто да преписваш някакви примерчета, ами да се опиташ да ги разбереш. Това най-лесно става, като се опиташ да ги модифицираш. Например: този цикъл ми вади всички четни числа в поредицата от едно до сто, аз ще я променя да ми дава всяко трето четно число в обхвата от 500 до 1 000. А какво ще стане да го пренапиша от „за“ (for) на докато (while)? Малки стъпки, малки промени, мислене. И си ти човека.

За Телерик си закъснял с нещо като две години, примерно. Те отдавна не растат толкова агресивно и не наемат завършилите академията им. Освен това и въпросната академия силно свива и редуцира дейността си.


@rwk все повече ме радваш. Все повече в теб виждам себе си преди двадесет години да речем, с малката разлика, че тогава бях комуняга, грешките на растежа, хи-хи. Иска ми се да си бях запазил тази невинност и оптимизъм.

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

Отказ от отговорност — Така. Ще се опитам да те „светна“. Ще повторя някои неща, които вече очевидно знаеш, но са ми необходими да навържа логиката. Ще прескоча множество важни въпроси като комуникационни канали и протоколи, за да не натоварвам обяснението. Също така няма да е много очевидна разликата между приложно, програмно обезпечение (software) и апаратна част (hardware). Надявам се осъзнаваш разделението между тях.

При паяжината има две страни. Едната подава съдържание, която ще наричаме служител (server), а другата го получава и нея наричаме клиент (client). Тези две неща са специален вид машини, компютри. Следва уточнението, че разните умнофони и планшети също са компютри, само че скапани.

Клиента има нужда от програма, която да разбира това, което изпраща служителя. Тази програма се нарича интернет-навигатор (browser). На нея можеш да гледаш като на нещо като например преглеждачка за pdf например Adobe (Acrobat) Reader или μpdf. Сиреч програмата, която е твоята страна, интернет-навигатора може само да интерпретира (прочете) подаденото му съдържание и да покаже резултата на екрана. Този въпрос ще има допълнително разяснение.

Самият документ, който получава е написан на специализиран (dsl), декларативен език за програмиране, който се казва  html(в приблизителен превод:  език за обозначение на разширен текст). Обаче, много по-лесно е да гледаш на него като документен формат например odf или doc. И този въпрос ще претърпи развитие.

Демек служителят подава документ, който ти виждаш при теб. В самото начало (1991-ва) това е било точно така. Но след няколко години хората взели да се питат — добре де, има ли вариант да не пишем всеки път едно и също форматиране, а само да сменяме текста? Това било зародиша на шаблонните системи, това, което вече познаваш. Но питайки се подобен въпрос и търсейки възможни решения, стигнали и до нов — хубаво де, а не може ли цялата работа да стане програмируема и въобще цялото съдържание да се образува (generaite) в движение? Последвал и нов — а може ли различните части на документа да идват от различни места и да се сглобяват при поискване (on demand)? Тези два въпроса оформили новата (към днес вехта) концепция за динамичното съдържание.

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

Обаче това не е края. Около и малко преди да започнат да се питат дали не могат да шаблонизират съдържанието, хората взели да се питат, не могат ли в интернет-навигатора да положат нещо повече от заявления (декларативният език) и да имат нещо по-процедурно (imperative). Сиреч не само да заповядват какво да се прави, а да казват точният начин, по който да бъде изпълнено.

Този въпрос е от огромна важност и заслужава да спрем за момент развитието на основната тема. Защо им е било необходимо нещо такова на пръв поглед абсурдно? Така де, всеки иска да е шеф, никой не ще да е хамал. Въпроса е, че е било необходимо да се внесе човечност в сивия, машинен свят. Ще ти го демонстрирам нагледно. Изключи си композицията и размърдай прозореца. Какъв е ефекта? Някаква мега дървения, грозно та не се трае. Включи го пак и тръсни праните гащи. Какво се случи? Стана ти драго на душата. С други думи „луд на шаренко се радва“.

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

Аналогията е напълно покриваща реалността. Един работник може да копае. Обаче как този работник, който може да копае, можеш да го накараш да прекопае лозе? Ами съставяш му алгоритъм — минаваш с мотичка да извадиш плевелите. Не трябва да ги копваш през стъблото, а малко по-настрани, за да се извади корена. Когато започнеш да обръщаш на правата лопата пък, копваш по-дълбоко, за да се образуват падове около лозниците, за да може да се оттича към тях влага от дъждовете. (Примера не е пълен) Същото е.

Понеже идеята тръгва като „луд на шаренко се радва“ да направим средата по-атрактивна, то времето било малко, само две седмици, а на всичкото отгоре изпълнителя не схванал, какво искат от него. Трябва да подчертаем, че нещата се развиват през деветдесет и шеста, времето, когато Гай Стийл е тогавашният кумир, какъвто е сегашният Андерс Хелсберг, а пък Sicp е библията. Та пича всъщност не създава чист процедурен език, а по-скоро функционален. Прави толкова оригинално нещо, че опровергава ботаниците в компютърните науки. Но е спра до тук, защото може книга да се напише по този интересен казус.

Това, което ни интересува е, че в пясъчника наречен интернет-навигатор се оказваме с почти процедурен език. Освен това обещахме едно разяснение. Интернет-навигатора може да е програма за преглед на специален вид документи, но далеч не е само това. Тя например е още телефон. Да. Понеже не всичко се случва локално на машината, а има отдалечена такава, то ние трябва да сме в състояние да се свържем с нея и да си говорим. Сиреч представи си го като skype, viber, whatsapp.

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

Ще се опитаме да обобщим. Класическата схема е (обикновено отдалечен) служител и (обикновено локален) клиент. Служителя ни дава отговори на заявки от клиента, които са във вид разбираем за него. Обаче клиента не знае, какво се случва при служителя и как точно се стига до този отговор. Чисто технически обаче това не е напълно вярно днес. Не само клиента може да отправя заявки към служителя. Вече и служителя може да отправя такива към клиента и то по поне десетина различни начина. Заявките и отговорите пък може да са разпръснати на малки частички, които пристигат по различно време. Може да се променя документа и локално, не само да се получава в цялост. Не целият код се изпълнява при служителя. Вече има множество код, който се изпълнява и при клиента. Нещо повече множество действия се повтарят и на двете места.

Скучен пример — имаш тривиален формуляр за регистрация в някаква услуга. Обаче служителят е наложил ограничение потребителското ти име да не е по-малко от пет знака. Това един път се проверява в интернет-навигатора и втори път при служителя, защото той не може да е сигурен в отговора. Първото може да се изпусне, но е удобно един път потребителят да е уведомен предварително, втори път, за да не се изпълняват заявки, за които знайно ще доведат до грешка и следователно напразно изпълнение. Ако се пише за държавата, може да се изпусне второто ;)

Уф, омръзна ми, дано си разбрал. Ако не, питай!


Титла: Maтематика? Как да започна с програмирането?
Публикувано от: hakama в Jun 06, 2016, 22:18
Навремето като следвах в ХТМУ, асистентите казваха, че тук няма да научим всичко, а по-скоро как да мислим и къде да потърсим решението...
Ще ми се да стигна до някакво ниво с математиката, което да ми даде "очите", с които ще разбирам какво гледам (примерно преди време попаднах на справочник за химични и физични явления), в който има доста интересни ефекти и биха могли да се съчетаят с друг ефект/енергия и така да се получи синергичен ефект и да изобретиш нещо...
При математиката/програмирането има ли го този момент?

- какво е най-необходимото, за да съм в час с математиката - за да имам някакво самочувствие, да не ме спъва, както през студенството
 - може ли да кажете кои раздели/инструменти от математиката се ползват в програмирането?
Искам да мина през основните глави без излишни отклонения.
Математиката в началото ми вървеше, но в средното я занемерих.
Във ВУЗ-а доста ми пречеше да разбирам физичните закони, а и в инженерните дисциплини.  :(
 Сега съм намерил учител, но не знам откъде да започнем. Не говорим да правя игри и разни филтри за Фотошоп... не толкова висша степен.
Знам, че алгоритмите са важни, но това не ми говори много. ???

2. От къде да започна?
По принцип съм човек на мисленето (аналитичното, логическото), комбинативното, идеите, намиране на преки пътища... оптимизацията ми е като навик/начин на мислене.
Ще ми се един ден да мога да "криейтвам" разни неща или да работя над неща свързани с науката по някакъв начин. (това е идеалния развой). Инженер-химик съм.

Дилемата е дали да захвана automation QA (есента, 6 месечен разширен курс), понеже не се изискват странични неща и като навляза (започна работа)... да закълва и език - за програмист вече)
 -или направо от сега да се спра на даден език?! ::)


Към коя област да се ориентрирам:
- алгоримично програмиране
- логическо програмиране
- функционално програмиране


- Избор на първи език

С кой език да започна, така че да не се откажа още в началото (C++ отпада ) - но пък да си създам стабилна основа, на която да стъпя, а не да уча на парче (code monkey...) - и да започна стаж/работа?
C ( матерния език) - стабилна основа
Ruby - за прохождане бил добър, а и набирал скорост.
С# - доста ресурси и много популярен
Jаva - същото
Python - добър избор за първи език


Титла: Re: Как да започна с програмирането?
Публикувано от: go_fire в Jun 07, 2016, 18:31
hakama МНОГО е странно, че още никой не е взел отношение по темата. Както си личи, това ни е от любимите неща за чесане на езиците. Изглежда пак аз лаика, ще трябва да съм пръв. Ще се опитам да ти говоря от позицията на професионалист, какъвто не съм и няма да стана.

Защо ли? Защото ще намразя компютрите. Компютрите ли, компотите ли, не съм сигурен, че и сега ги обичам, но знае се границата е тънка, а страстта голяма. Карай, т'ва няма да излезе и днес.

-----

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

=*=

Давай на твоя въпрос.

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

Запомни паяжината, след малко ще се върна на нея.

• Красотата на математиката? Философски въпрос. По принцип, но само по принцип, красотата на математиката я няма в програмирането. Малкото математика, която има, я има в уродлив вид. Толкова уродлив, че не би я познал.

Но всяко правило си има и изключения. Примерно повечко математика има при писането на игри. Но не е нещо особено — дискретна математика (от началната) и разбира се умножение на матрици.

Това е кариера обаче, която не те съветвам да започваш по две причини:

① Неблагодарна. Искат се много знания, още преди да влезеш в нея. Искат се много повече знания, от тези, които има всеки среден майстор¹. В същото време заплащането не е добро. Ако си много добър може да се договориш на до към две и петстотин. В лева;

② Ако обичаш да играеш, ще намразиш игрите. Почти обезателно. Това е поради простият психологически факт, че ще гледаш по цял ден „вътрешностите“ им и ще си „цапаш ръцете“. Когато седнеш вкъщи да играеш тази гледка ще е пред очите ти или поне в подсъзнанието.


Има един математически език, който става все по-интересен за работодателите. Той се казва просто R. Ако кажеш, ей я красотата — ще те разочаровам пак. Математическо му е само името. Всъщност този език се занимава с най-гнусният дял на математиката, толкова гнусен, че математиците предпочитат да го назовават като отделна наука — статистика.

Също така това, за което се използва този език, може би няма да ти е най-приятното. Повечето хора по света са настроени против НСР. Ако си от малцината щастливци, които не са, няма да имаш тази морална дилема. Да R се използва за поробване на душите. Лично на мен ми е все тая. Мен не могат да поробят, но няма и да им помагам.

Има още нещо в полза на НСР, което се ползва и доста популярно, макар да не е създадено с тази цел. Това е ИИ. Но тук най-вече става въпрос за компютърно „зрение“ и „слух“. Там математиката е интересна и много. За да го работиш обаче, трябва да си намериш някой прохождащ³. Точно този момент не е добър за това, защото фондовете в момента са затворени и който се доредил, доредил, чака се следващият прозорец след няколко години.

Разбира се, има прохождащи не само със средства на данъкоплатеца, но когато се троши  държавна пара̀, има бум. Сега е спокойно и по-трудно ще се уредиш за такава работа. Пък и не е точно добре за първа работа. Първо се поошлайфай, пък тогава се впускай в приключения. Естествено, всяко правило има изключения и точно това може да е точно твоя път. Затова не отписвай възможността, особено, ако си почитател на НСР, нищо и по никакъв начин не те спира, даже те вика сам да станеш предприемач.

Обобщавам за математиката — в 999‰ от случаите, няма да ти трябва при нормална работа. Под нормална се разбира да бичиш за паяжината или за телефони. Има малко места, където е важна, но тогава, можеш да погледнеш в учебника. И да, докато си чирак², каквото и да правиш, математика няма да ползваш.

Подточката за физиката, ами пак основно в игрите се използва. Понавлиза и за анимации, ефекти, ама слабо още. След някоя друга година, може. А мисля, че вече ти и отговорих, че в игрите не е най-сложното математиката, тя е най-простото там. И да освен това игрите могат да звучат романтично, но си е доста скучно и монотонно занимание. Трябва да си спокоен човек. Ако си спокоен, игрите са твоето нещо. Но преди тях трябва доста яко да си се подковал с Ц++.

• Класически (дори във ВУЗ) се започва с алгоритми. Наскоро Наков (Преслав) си преиздаде (включително безплатно) учебника, но в този форум ще намериш и по-добри книжки.

Алгоритмите не са лошо нещо. Веднага ще разбия илюзиите ти, че някога, някъде ще ги ползваш. Няма. Почти убедено. Хората дето ги ползват наистина се броят едва ли не на пръсти. Могат евентуално да са ти полезни, ако ще разработваш за микроконтролери, но пак спомагателно, просто да схванеш принципа на Асемблер. Има по-добри начини за това. И да Микроконтролерите са поредното неблагодарно (най-неблагодарно) нещо. Работата е трудна, имаш хиляди ограничения пък, ако се договориш за хилядарка, ще си доволен.

НО! Алгоритмите макар да не ги ползваш никъде⁴, ще ти покажат нагледно как се случват нещата. Те превръщат от теб един малък Денис Ричи. Това определено ще ти е много полезно за начина на мислене на програмиста и то в най-баналните ситуации дори. Не случайно са първото, което учиш. Хем да имаш време да забравиш всичките врели-некипели вътре, хем да запазиш и развиеш мисленото, дадено от там.

От трите области, нито една не е перспективна, макар последното предположение напоследък да е модно, за да бори недостатъците (и комплексността) на ООП. Де да знам Ада, Пролог дори в щатите трудно ще си намериш работа. А и тия дето ги взимат с такива езици да работят, може и три живота да са ти малко да придобиеш уменията им. Реално да ми кажат, че някъде са взели българин с Ада, няма да вярвам, докато не отскоча до НАСА да го видя на живо.

• Интересно, че след като говориш за логически, функционални и не знам какви си езици⁵, изброяваш неща които не са.

Списъка не е лош. Извади от него дедото и сложи js (nodjs е новото Руби, което направо си го асимилира). Js днес се използва навсякъде и за всичко. Което и от другите да научиш, към него трябва обезателно да прибавиш js. Виж в новините дори има такава, че едно българско „дистро“ е написано на него. Работен плот, server, client, телефони — js е навсякъде. Те и телефоните са НСР, ама вече уточнихме, че трябва да си глобалист, за да работиш това. Всъщност патриотарите, комунистите, анархистите и религиозните трябва да са доволни, че глобалистите избраха високите технологии, защото, ако има нещо сигурно на този свят, то е, че високите технологии работят на магия⁶ и всичко това ще се срути обезателно. Скоро. До 50, 100, 200 години. Не повече. Жалко, че няма да съм жив да се смея истерично. Ей тогава ще е голям сеир.

=*=

Това беше за чешането. Сега сериозното. Мини една книжка за алгоритми. Тази на Преслав ще е достатъчна за следващите 10 години. Изкарай някой поне тримесечен курс по английски език. След това хвани Смоко. Казвам го него, защото Гатака имаше прекрасен курс по него. Не съм го проследил, защото питоня е затворена страница за мен от поне 12-15 години, но съм сигурен, че курса е бил уникално добър. Просто познавам Иван и от първо лице знам що за човек е.

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

Успех!

п.п. Защо изобщо ходиш по форумите? Хващай се в ръце и почвай. Нужни са хора.

п.п.п. Т'ва за глобализма не беше съвсем майтап. Наистина трябва да си широко скроен. Не трябва да имаш предразсъдъци, не трябва да признаваш граници. Двете освен, че те правят антисоциален темерут, вредят на работата. Често ще срещаш хора, които ти говорят за „тръстика“ и всякакви тъпотии. В действителност тези хора са я расисти, я религиозни, я нещо друго ограничаващо. Трябва да си космополит. Ако не си, изобщо не се захващай.

-----
¹или сеньор, ако предпочиташ  испанският език;
²или junior, ако предпочиташ на английски език;
³познато като startup;
⁴освен, ама наистина най-елементарните;
⁵повярвай ми, без да проверяваш, че алгометрично се програмира само на олимпиади, такова нещо е по-рядко от кокоши зъби, а там дето се ползва, нямаш титлите да идеш;
⁶извади от профила ми последната тема, която съм пускал. А това е наистина малък пример.


Титла: Re: Как да започна с програмирането?
Публикувано от: remotexx в Jun 07, 2016, 21:24
TAOCP ($2)
нещо такова ли ти трябва?


Титла: Re: Как да започна с програмирането?
Публикувано от: 4096bits в Jun 07, 2016, 21:36
С всичките писаници до тук, се искаше да се каже, че просто трябва да се хванеш. Като някой с интерес в тези неща, но непрофесионално и непрофесионалист, а пълен аматьор мога да кажа и то смело, че без конкретна цел ( проект ), трудно ще напреднеш. Да, може да усвоиш елементарните неща, на който и език да се хванеш и за това ти трябват два дена. Пет, ако си мързелив. За "обща култура" един вид. От тук насетне ще трябва да си поставиш задача, защото повечето езици идват с един куп библиотеки към тях, предназначени за всякакви цели. Като започнеш от математиката, статистика, обработка на данни, нет, каквото се сетиш. Ако мислиш, че просто ще тръгнеш да ги учиш ей така и ще ставаш корифей, няма да стане. Ще се омоташ здраво. Постави си цел. Например елементарна арфивираща и разарфивираща програмка, елементарен текстов редактор или телефонен указател, елементарен уеб браузър. Нещо.

За запознаване с елементарните неща в програмирането като различните оператори, какво са функции, класове, обекти и прочее, вход-изход, какво е предаване на параметри, цялата тази основа, можеш да хванеш някой скриптов език, като предложения Питон и директно в интерпретатора да пробваш.
За по-сериозното изучаване на някой език, прецени, какво ще правиш пъров и си хвани съответния език и действай. Общо взето, на всеки един, ще можеш да свършиш всяка една работа. В някои, определени неща са по-лесни, в други други. И така.
Аз като един пълен аматьор ще ти кажа от малкия си опит, че без конкретна задачка, не става да учиш просто така. Пробвах, четях, почти всичко ми беше ясно, което не толкова, го препрочитах по няколкото пъти, но после нищо не остава като цяло в главата. Но хванеш ли се да правиш нещо, се помни.
Последното, дето правих, беше да измъкна от сайта на парламента всички имена на депутатите с имейлите им там, щото го нямаха на документ, та преравяш сайта и измъкваш от страниците, каквото ти трябва.. Така разбрах, за възможните библиотеки за уеб скрапинг на съответния език, какво е xpath, какво е re. Това последното още ми е мътно и винаги ме е спъвало, ама му се види и на него края.  ;D Постави си задача/и!

И понеже го споменаваш в поста си, да допълня. Зхвани първо езика. Поне два курса, ако може три. Без език.... В интернет има толкова много за всеки един език, но  много трудно можеш да намериш нещо на български.