Искам да стана добър програмист - Spodeli.net


Нещата от живота...
 
Реклама


 Начало
 Правила
 Добави история!
 Контакт
 
Споделени истории (120674)
 Любов и изневяра (29589)
 Секс и интимност (14309)
 Тинейджърски (21852)
 Семейство (6438)
 Здраве (9549)
 Спорт и красота (4687)
 На работното място (3138)
 Образование (7285)
 В чужбина (1642)
 Наркотици и алкохол (1113)
 Измислени истории (796)
 Проза, литература (1730)
 Други (18390)
 Избор на редактора (156)
 
Полезно

Пакет за пълно възстановяване със зъбни импланти в рамките 5 работни дни. Опитен екип и зъботехници, венозна седация от анестезиолог, временни и постоянни мостове - фиксирана цена

Запознай се с актуалните цени на зъбни импланти в дентална клиника Смайл Дентал Сървисес

 

  

Споделена история от Образование

Искам да стана добър програмист
преди: 4 години, 7 месеца, прочетена 1341 пъти
Здравейте!

От около година изучавам за по десетина часа седмично (основно по време на работа и малко извън нея) CSS, HTML и JavaScript.

Въпросите ми са насочени към всеки от вас, който се занимава с програмиране: какъв софтуер или програмен език са нужни за създаването на 2D интерактивни карти (политически, статистически, географски и други), и търси ли се като цяло подобен тип услуга?

Има ли смисъл в създаването на десетки игри с JavaScript (Тетрис, пинг-понг, Пакман и подобните им)? Загуба на време и отживелица ли би било нещо подобно?

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

Благодаря на всеки от вас, който ще се включи.
Оценявам всяко мнение!

Благодаря и на редактора за одобрението!
Бъдете здрави!

 
Сподели историята:
 
<< Предишна Случайна Следваща >>
 
 

Коментари

Добави Коментар!
Вземи последните коментари по RSS
 
Изпрати ми имейл, ако някой добави коментар към тази история (какво е това?)
 
Email:
  ... ... ...
Коментари на страница: Най-отгоре:

преди: 4 години, 7 месеца
hash: a86942ab99
гласове:
1 2 3 4 5
  (220609 гласа)

1.   Не знам какво точно разбираш под интерактивни карти в конкретния случай.
По принцип софтуерът за работа и анализ на карти/географска информация от типа който описваш се нарича ГИС (GIS) - Геоинформационна система.
Като конкретни програми може да погледнеш Arc GIS (най-използваната, но и доста скъпа). Има добри онлайн ресурси как се правят неща с нея.
QGIS - на първо четене - безплатна алтернатива на Arc GIS, ползва същите datasets. Нещата, направени с едната, е много вероятно да работят и с другата, но са ми се случвали и издънки.
Има и други програми за работа с карти, но моят опит се ограничава до горните.
Това обаче аз поне не го броя за "програмиране" - това е владеене на конкретен софтуер.

Успех

 
  ...
преди: 4 години, 7 месеца
hash: 9d32115387
гласове:
1 2 3 4 5
  (180436 гласа)

2.   От изброените само JavaScript е програмен "език"... а език е в кавички, защото всъщност е супер объркан шит. За съжаление това се ползва в уеб основно. Защо в JavaScript "11" 1 връща стринг "111" а "11" - 1 връща числото 10? Защото е шибан език.

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

 
  ...
преди: 4 години, 7 месеца
hash: 5624688995
гласове:
1 2 3 4 5
  (1 гласа)

3.   Ако ще се занимаваш с CSS и HTML трябва да се запознаеш с Bootstrap. За JavaScript ти трябва фреймуърк, като Vue. js и jQuery.

.

 
  ... горе^
преди: 4 години, 7 месеца
hash: ea7fa69f2b
гласове:
1 2 3 4 5
  (142012 гласа)

4.   Трябва много учене и практика.

Към конретикта:

1 - Бъди сигурен, че умееш да кодираш. JavaScript e прекрасен втори програмен език, но поради призини, които нямаме време да дискутираме, не искаш, да ти е първо (споко, ще поговорим после за него).
Започни с Python! MIT и Станфорд вече преподават Python като начелен език, ако се търсиш второ мнение по-въпроса.
Мини всички неща - работа с типове данни, колекции, вградени методи, работа с други библиотеки, писане на собствени класове, ООП, сокети, нетуркинг и прочие.
Идеята е, да си ДОБРЕ запознат с основните концепции.
Ако си добре запознат, разбира се, можеш да пропуснеш тази стъпка и да се придържаш към JavaScript.

2 - Алгоритми! Как да създаваш и анализараш алгоритми.
Това е най-важната стъпка. Повярвай ми - научиш ли се, да мислиш по този начин за проблемите, ще си добър програмист, независимо какъв език, каква задача и колко трудна, винаги ще имаш върху какво да стъпиш. А и е много по-лесно, да обедиш отсрещнта страна, да те наеме на работа. Защото съм се занимвал с алгоритми, съм получавал позиции, които изискваха два пъти моят стаж и познание върху техонологии, които познавах слабо.
Не мога, да ти кажа точно от коя книга, курс или упражнения успях, да науча алгоритмите (със сигурност не беше университета ...), но ето няколко препоръки:
Algorithms Illuminated (всички части) на Tim Roughgarden
Всяка друга книга за алгоритми, до която можеш, да се докопаш.
Cracking the Coding Interview - различни авотри са, според изданието, но те съветвам, да търсиш възможно най-ново.
Знам, че в Udemy има курс за алгоритми с JavaScript, ако не ти се чете много, но аз бих минал и него, стига да пуснат разпордажба за 10 долара на курс.

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

В Khan Academy им много информация и упражнения по темата.
Колкото до книги ... много са. Наскоро видях една на български
Дисктерна Математика, Теоритизни основи на информатиката; на Светла Бойчева и Стефка Толева-Стоименова.
(не ги познавам, просто това пише на корицата). Мисля, че е добре, да минеш и това. Ще разбереш защо правим много от нещата, които правим, ще започнеш да виждаш нови връзки и ще ти е много по-лесно.

4 - Бази от данни. Няма нужда, да ставаш специалист, но е критично, да си запознат с това, как складираме и изискваме данни. Спокойно - ако си се справил с предните неща, това ще е сравнително лесно ... поне в началото.
От всичко прочетено, теза ми бяше най-полезна:
Sams Teach Yourself SQL in 10 Minutes (по-скоро 20ина часа с всичко, ако Съветвам те, поне в момента, да не се занимаваш с Graph бази данни, но ако те зачеше - Neo4J и уебсайта им е добро начало - имат си ресурси и всичко и дори отговарят на запитвания.

5 - Научи повече за мрежите. Шансовете са, че ще ти се наложи да пращаш и приемаш данни. Просто е смешно, да не си наясно с тези неща.
Препоръчвам ти:
Computer Networking: A Top-Down Approach (7th Edition) – Kurose and Ross
Но ако ти се стори "голяма", другата ми препоръка е:
Computer Networks and Internet, Global Edition of Douglas Comer

6 - Напиши сървър. Ако все още се занимаваш с JavaScript, горещо препоръчвам, да седнеш и да научиш Node.js, както и да работиш с Express. Ако караш с Python - прочети повече за Flask.
Тук ще трябва, да научиш що е то сървър, как работи и как да изискваме от него услуги (както и как да сме сигурни, че си върши работата).
Препоръчвам ти, да минеш който и да е популярен и модерне курс за Node.js с Еxpress или Python с Django. Там ще ти е обеснят повечето неща, както и защо ги правим.
Прочети и повече за JSON.

7 - Наузи се да работиш с терминал, било то през Linux или Mac. Ако не нямаш Apple компютър (единстената причина, да имаш такъв е за да правиш апликации за iOS ... честно) и не ти се занимава, да си инсталираш Linux, нека ти препоръчам Raspberry Pi. Разбира се, винаги можеш да позлваш Virtual Box и да качиш последната версия на Ubuntu. Помни, идеята не е да станеш гуру, но да си наясно с това, как се движат нещата в един компютър. Защо? Защото всичко, което се движи и изпълнява някакви важни услуги, върви под някаква форма на Unix.

8 - Сигурност - owasp top 10 в owasp.org е достатъчно, за да разбереш какви са най-честите пропуски в сигурността. Няма нужда, да се превърнеш някакъв спер хакер, но е наложително, да си наясно с основните неща, ако смяташ, да правиш каквото и да е.

9 - Тук ти препоръчвам, да направиш обратен завой, и да научиш функционален език за програмиране. Haskell и Lisp са езиците, които ти препоръчвам. Просто ще те направят по-добър програмист. Няма нужда, да си много добър в тях, просто мини основните неща, за да си наясно, че има и друг начин за решаването на проблемите.
https://wiki.haskell.org/Haskell - кажи речи всичко, което ти трябва за Haskell.
http://learnyouahaskell.com/ -добра книжка за Haskell.

https://www.youtube.com/watch?v=ymSq4wHrqyU - общо взето това видео.

10 - Методики на работа - XP (Extreme Programming), Agile и какво се е пръкнало напоследък.
Просто търси инфо в Google. Това са идеологии, на това как трябва да се разработва софтуер, как да се говори с клиенти и отдели, как да се организира работно време, как да се пише код и прочие и прочие.

Най-важното е, да разбереш, че програмирането е инструмен, който позлваме, за да създадем софтуер, който решава проблеми. Най-често говорим за бизнес проблеми. Именно, заради това се плаща. Осъзаеш ли този факт, жиовтът ти, ще е малко по-лесен. Ще работиш с много и всякакви хора. Важното е, да се разбираш с тях. Повярвай ми - екип от хора на средно ниво, които работят като екип, ще е много по-ефективен от група 10X програмисти, които по единично може и да са професори, но заедно са просто кълбо от конфликти и грешки. Методики, идеологии, философии ... много са. Едва, когаот навлезеш в индустрията, ще разбереш много неща.

11 - Софтуерна Архитектура - https://en.wikipedia.org/wiki/Software_architecture
Защо? Защото е важно, да имаш визия и план. Трябва да си спосебен, да плануваш добре, да оценяш вече създаденото и да си готов да действаш. оже би се питаш, дали няма да има човек, който ще ти казва, какво да правиш, поне в началото? Ще има, но това далеч не означава, че трябва да си неспособен, да действаш и мислиш сам. В даден момент, ако се разбере, че си адекватен, ще ти гласуват доверие и ще ти е мнго по-лесенживота.

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

Това е краткото ми менние по-въпроса.

А сега за дргурите ти върпоси:

За твоите умения, предполагам, че можеш да ползваш Google Maps API-я, за да вземеш карите. Не знам, какво имаш предвид под "интерактивни", защото не си казал, но ако искаш, да показваш интересни данни, D3.js е добра библиотека за това, стига да си готов, да се научиш.
Колото до нуждата - това си е цяла наука. Да разбереш, дали нещо е нужно или не, поне в началото. Но какво вече беше казано - има такива приложения и е добре, да провериш какво и как правят, както и да разбереш защо и кой ги ползва.

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

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

Малко съвети:

Занимаваш се с JavaScript. Кажи речи, най-странния език в редовна употреба.
https://www.youtube.com/watch?time_continue=7&v=FSs_JYwnAdI

Ако съм на теб, в момента, щях да науча, как да работя не само с JS, ами и с Node.js, поради простата причина, че съврременният JS е почти безполезен без Node, a това, че може да върви на сървър е просто невероятно. Направи няколко прости сайта на т.нар. ванила JS (без библиотеки, без нищо), който са малко по-интерактвни. Примерно - направи няколко, който сменят фона на страницата, текста, картинките ... Идеята е, да се научиш, как JS борави с DOM.

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

Като за начало, потърси работа, като неплатен стажант.

Няколко неща, който е добре, да знаеш:
Английски - просто е много по-лесно, да си намериш работа, ако си с добър английски. Познавам индийци, които взимат 1/10 от това, което взима някакъв келеш, просто защото келеша е роден в Сиатъл, въпреки, че е на 1/5 от уменията им. Просто точно тези индийците са много зле с комуниацията. Но работех с човек от Банлгадеш, който говореше много добър английски и взима една от най-високите заплати в офиса. Истината е, че ако не знаеше добре езика, нямаше да е там. Това важи с пълна сила, за всяка държава, защото често офисите са международни и понякога се наага, да комуникираш с чуденци. Жалкото е, че дори никога, да не говориш с никого, пак ще ти изискват добро разговорно ниво (сертификати никой не иска ... те са само за кандидатстуденти).

Научи повезе за GitHub, UML, Design Patterns (MVP най-вече), REST, JSON, AWS.

Ползвай Google, Stackoverflow и документацията на каквото ползваш в момента. Това e важно умение. Редовно ще попадаш на сложни проблеми, които имат просто решение и се изисква, да ги решиш само по веднъж. Няма смисъл, да се правиш на велик, като измислиш собствено решение, губейки 3-4 часа, при положение, че първия отговор в Stack, wече предлага добро решение. И тук е другия подводен камък - трябва да се научиш, кои решения ти помагат и кои не. Сляпото copy-paste е сигурен начин, да се забатачиш.

Ами това е краткия вариант с много пропуски. Успех с работата!

 
  ...
преди: 4 години, 7 месеца
hash: 93cea20d50
гласове:
1 2 3 4 5
  (1 гласа)

5.   От автора:
Благодаря на всички коментирали, особено голяма благодарност бих искал да отправя към номер 4 за подробната информация и отделеното време!

Всяка дума означава много за мен.
Сърдечно благодаря! Успех на всички!

 
  ...


...
преди: 4 години, 7 месеца
hash: 946d2c79fc
гласове:
1 2 3 4 5
  (1 гласа)

6.   Чудесно за амбицията!
Съветвам те да се запишеш на курсове, които да ти дадат поне базисни умения в областта на софтуерните технологии и програмирането. Ако си от малко населено място, където не се провеждат подобни курсове, може да използваш дистанционна форма. SoftUni е добър вариант, Телерик, Softacademy и т.н. Това също е опция: https://www.codecademy.com/
Препоръчвам ти това четиво: https://introprogramming.info/intro-csharp-book/read-online/
Ако си решил да останеш в България и да следваш висше образование в тази насока, най-добре избери СУ - ФМИ. КН (компютърни науки) е много силна и перспективна специалност, а СИ (софтуерно инженерство) е една от най-желаните в университета (тази година беше на второ място след Психология). За кандидатстване във ФМИ отдели поне една година за уроци по математика (а ако не си в математическа гимназия или поне профил математика, отдели 1,5-2години). Изпитът Математика II не е никак лесен.
Успех!

 
  ... горе^

Коментари очaкващи одобрение: няма
...

Коментари, които са написани неграмотно, с латински или главни букви няма да бъдат добавени!

1. Бъди полезен на другите с коментара си!
2. Хейтъри не се толерират!
3. Обидните квалификации не са аргумент :-)
4. Пазете мъдростта за себе си, другите имат нужда от съчувствие!

Знаете ли, че след символите запетая и точка винаги следва интервал?   [ Да ]   [ Не ]

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



Copyright © 2007 Spodeli.net
eXTReMe Tracker