Страници: 1 ... 4 5 [6] 7 8 ... 12   Надолу

Автор Тема: Как да започна с програмирането?  (Прочетена 73582 пъти)

ieti

  • Напреднали
  • *****
  • Публикации: 92
  • Distribution: Arch, Debian
  • Window Manager: XFCE
    • Профил
Re: Как да започна с програмирането?
« Отговор #75 -: Sep 17, 2012, 15:52 »
Браво на авторката на темата, че иска да се занимава с тази малко неблагодарна професия. Интересно е, забавно е, но понякога наистина има малко горчилка.

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

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

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

ЕДИТ: Една малка подсказка - научи се да търсиш информация бързо. Научи се да отсяваш информация. Не е важно да помниш купища методи, обекти, имена на функции и тн. Важното е да знаеш как може да стане дадено нещо и да намериш средствата за да го постигнеш.
« Последна редакция: Sep 17, 2012, 16:01 от ieti »
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Как да започна с програмирането?
« Отговор #76 -: Sep 17, 2012, 16:32 »
Познавам немалко жени програмистки, така че не е такъв проблем.

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

"Knowledge is power" - France is Bacon

remotex

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

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

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

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

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

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

Лек ден ви желая - колеги и колежки.
« Последна редакция: Sep 17, 2012, 17:14 от remotex »
Активен

zdraganov

  • Напреднали
  • *****
  • Публикации: 16
  • Distribution: Fedora 16/17, CentOS 6.3, Red Hat Enterprise Linux Server 6.2
  • Window Manager: KDE, LXDE
    • Профил
Re: Как да започна с програмирането?
« Отговор #78 -: Sep 17, 2012, 17:28 »
Здравейте на всички,
Не съм от най-приказливите по форумите (предпочитам да чета и да се образовам вместо да драскам неща които и някой друг може да напише), но темата ме заинтригува затова искам да пусна коментарче.
Браво за ентусиазма на девойката, ако има желание човек успява независимо от пречките.
Първо искам да споделя малко от собствения си опит. Занимавам се горе-долу от 8 клас в гимназията с програмиране, през университета (където започвам 3 година), както и професионално. Твърдя че съм минал през няколко етапа на обучение (предимно самостоятелно) и че имам какво да ти кажа по темата.
Както повечето тук, ще ти кажа че езикът не е от най-голямо значение. Важно е да се научиш да мислиш по-правилния начин и оттам голяма част от езиците ще ги учиш в движение с помоща на Гугъл и други незаменими за програмиста "извори" на безценна информация :)
Аз лично започнах с популярния на времето "ученически" Паскал, минах през C/C++, после и Java, C#, Visual Basic, Objective-C, PHP, Ruby, Groovy, Bash (може и да изпускам нещо). За първи език препоръчвам процедурен Pascal или C. Ако се занимаваш сериозно в един момент ще ти стане "неудобно" и ще тръгнеш в дебрите на Обектно-ориентираното програмиране (накратко ООП), но не бързай - на мен ми отне поне 3-4 години да разбера, че имам нужда от него.
Ако отделяш достатъчно време и нерви, ще успееш независимо в каква насока се развиваш и с кой език започваш. Даже някой ден ще ти стане все тая...
Успех и очакваме да споделяш опит.
« Последна редакция: Sep 17, 2012, 17:51 от zdraganov »
Активен

Живко Драганов

v13

  • Гост
Re: Как да започна с програмирането?
« Отговор #79 -: Sep 17, 2012, 17:53 »
Според мен жените в програмирането са като жените шофьорки. Много жени могат да карат кола, и се справят някак си, но наистина добри шофьорки са много малко и са толкова добри, че в много отношения превъзхождат и много мъже, които се считат за добри шофьори. :)
Активен

XpucToBa

  • Напреднали
  • *****
  • Публикации: 18
    • Профил
Re: Как да започна с програмирането?
« Отговор #80 -: Sep 17, 2012, 18:33 »
Благодаря на всички за милите думи! Добре тогава ще послушам вашия съвет и ще започна най-напред със C, вече ще мина към C++, когато реша, че съм готова за това. А само като за последно да попитам Code::Blocks хубав компилатор ли е? :)
Активен

v13

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

bvbfan

  • Напреднали
  • *****
  • Публикации: 1056
  • Distribution: KaOS
  • Window Manager: Plasma 5
    • Профил
Re: Как да започна с програмирането?
« Отговор #82 -: Sep 17, 2012, 19:24 »
Code::Blocks е IDE, компилаторът е gcc. Идеален е, аз него ползвам и на работа, и вкъщи. В С/С++ няма правилен начин, това много учудва хора, които не са се занимали с езика, в дадена ситуация всяко решение може да бъде грешно или не грешно, но никога не може да бъде вярно  ;D
Активен

xkernell

  • Напреднали
  • *****
  • Публикации: 46
  • Distribution: kubuntu 12.10, ubuntu 12.10
  • Window Manager: KDE, GNOME
    • Профил
Re: Как да започна с програмирането?
« Отговор #83 -: Sep 17, 2012, 19:29 »
Мда... на това му викам "емулаторен език", това е и една от причините да не пиша на C++.
Ама някой път се налага де... когато производителността е от най-голямо значение.
Активен

remotex

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

borovaka

  • Напреднали
  • *****
  • Публикации: 1331
  • Distribution: Каквото дойде
  • Window Manager: Gnome / KDE
    • Профил
Re: Как да започна с програмирането?
« Отговор #85 -: Sep 17, 2012, 20:46 »
Аз пък точно Eclipse CDT препоръчвам за начинаещи ( мързеливци като мене ), даже най-добре си е Студиота за C/C++ като IDE според мен де компилатора им, не заради друго, но показва най-удобно грешките и се усеща доста интуитивно къде е проблема. Е вече в новото GCC наблегнаха малко на съобщенията за грешки, по подобие на Clang. Абе за начинаещ всичко става за писане в общи линии, но IDE-тата улесняват живота.
Активен

Та извода е прост: "Колкото по-големи ла*ната - толкова по-малка щетата! ... моралната де, не материалната"

v13

  • Гост
Re: Как да започна с програмирането?
« Отговор #86 -: Sep 17, 2012, 21:11 »
Според мен за Java, Eclipse е прекрасно IDE, смело мога да кажа, че последната версия е по-бърза, консумира и по-малко ресурси в сравнение с Netbeans. Също така има много допълнителни функционалности, които могат да бъдат включени.
Активен

ji

  • Напреднали
  • *****
  • Публикации: 124
  • Distribution: Slackware, Suse
  • Window Manager: KDE
    • Профил
Re: Как да започна с програмирането?
« Отговор #87 -: 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.
« Последна редакция: Sep 18, 2012, 01:12 от ji »
Активен

remotex

  • Напреднали
  • *****
  • Публикации: 344
    • Профил
Re: Как да започна с програмирането?
« Отговор #88 -: Sep 18, 2012, 05:53 »
мъка, мъкааа...

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

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


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

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

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

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

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

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

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

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

П.П.П. Трудно се стига до това ниво да пишете код като горния... Не помня вече точно кой от великите скулптори на средновековието като го питали "Как постигате такова съвършенство" той отговорил - "Много лесно. Просто премахвам всичко излишно от камъка и остава самото съвършенство"
« Последна редакция: Sep 18, 2012, 06:26 от remotex »
Активен

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 8792
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: Как да започна с програмирането?
« Отговор #89 -: Sep 18, 2012, 08:30 »
5. т.

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

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear
Страници: 1 ... 4 5 [6] 7 8 ... 12   Нагоре
« назад напред »