как да стана софтуерен разработчик


Отговор 1:

Може би добро умение да имаш, но не, не като професия в момента.

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

Повечето от тези хора не са много добри, но огромният брой млади хора, които се занимават с програмиране, е страшен за някой в ​​тази област. Университетите по цял свят виждат възможност за печелене на пари, така че ускоряват записванията възможно най-бързо до следващия взрив на балона. Междувременно всички онези талантливи (плюс не толкова талантливи) млади хора се състезават за едни и същи позиции. Вероятно има много по-малко позиции, които хипът предлага. Очевидно е в най-добрия интерес на мениджърите в бранша да разполагат с голямо количество работници с ниски заплати, които не „правят проблеми“, така че те продължават да повтарят пропагандата за „недостиг“.

Моят опит е, че поне половината до 90% от обявите за работа в различни уеб сайтове са фалшиви. Често компанията има някой на ум, но преминава през движенията, изисквани от някакъв „процес“. Компаниите, които уволняват хората или дори ги изключват, поддържат публикуванията си, за да избегнат загуба на доверие на клиенти или потенциални купувачи. Тези, които са истински, получават стотици кандидати, така че има всякакви техники за скрининг за филтриране на повечето от тях.

Ако преминете през първите екрани, трябва да направите тест за любопитни факти за програмиране от училищен тип, който няма много общо с действителното софтуерно инженерство. Това има явна пристрастност към инженерите, които са били извън училище повече от няколко години. Повечето мениджъри са на около 35 години и рядко виждат полза от наемането на по-възрастни от тях (или ги гледат с откровено презрение).

Така че очаквайте кариерата ви да достигне своя връх, когато сте на около 30. Над около 40 години може да отнеме малко повече време, за да си намерите нова работа след неизбежното съкращаване. До средата на кариерата забравете да прилагате студ и преминете през лични контакти. Въпреки това, след около 50 вашите колеги вероятно също са пенсионери или безработни, така че трябва да имате нова кариера. Ако очаквате да влезете в управлението на софтуера, не забравяйте, че всички останали в същата вълна също се надпреварват за тези позиции, така че е още по-конкурентоспособно.

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


Отговор 2:

Ако сте развълнувани от това, да!

Ако го правите, защото изглежда като „добър път в кариерата“, бих преценил отново. Доста добра работа за SWE е много работа - ако се радвате на тази работа, вероятно ще имате удар. Ако не, вероятно ще се страхувате от живота.

Най-страхотното при получаването на степен в свързана с CS / IT област е, че има много опции, които не са просто „кодиране“. Настоящият ми екип всъщност е екип за технологии и обучение и ние се справяме с техническата страна на нещата, но също така провеждаме семинарите, за да обучаваме служителите на нови системи и процедури и да правим много техническа документация. Ако сте в състояние да разберете тънкостите на дадена система, ще можете да приложите тези знания по различни начини и можете да си проправите път към роля, която ви позволява да участвате в технически неща и да помагате хора.

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

Предполагам, че това зависи от това, което виждате да правите академично. Ако изберете SE, не е задължително да вземете магистърска програма, за да си намерите работа. Медицинското или стоматологичното училище биха добавили много повече учебно време, така че това е нещо, което трябва да имате предвид. И тримата са високоплатени кариери, но вероятно бихте спечелили повече като лекар или зъболекар, ако сте фокусирани върху парите. Зависи и от това колко сте отдадени. Всеки може да се научи как да кодира, но не всеки, който го прави, трябва да бъде разработчик. Ако отидете по медицински или зъболекарски път, наистина трябва да сте готови да отделите допълнително време и пари.

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


Отговор 3:

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

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

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

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


Отговор 4:

Можете да попитате това за всяка професия и да получите смесени отговори. Някои хора вероятно са мечтали за това от гимназията, някои дори не могат да си представят, че го правят до края на живота си. Отговорът наистина зависи от това, което има значение за вас и кои са вашите приоритети в живота.

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

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

Заплатите на софтуерните инженери варират в широки граници от $ 30 000 до $ 150 000 и зависят от вашето местоположение, умения и опит. И това не е ограничение, има много потенциали за професионален растеж и постигане на повече.

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

глобален екип, какъвто имаме в Trio.

Отговор 5:

Ако посетите най-добрите училища, ще видите, че няма разлика между софтуерен инженер и компютърен учен. Всеки завършил 6 курс от MIT е едновременно информатик и инженер. Същото важи и за Бъркли, Станфорд и т.н.

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

Един от любимите ми примери за този жанр е контрастът между Питър Норвиг и Рон Джеферис при атака на прост проблем (решаване на судоку): http://gigamonkeys.wordpress.com/2009/10/05/coders-unit-testing/

На някакво ниво разликата между двете просто се свежда - както предлага Norvig - до знанието: Norvig знаеше как да реши проблема, защото това е специфичен случай на вид проблем, който той вече знаеше как да реши. Джефрис, очевидно, не го направи. Но той реши да се справи с този конкретен проблем, използвайки TDD, техника, в която той трябва да бъде експертът? Защо имаше толкова малък успех?

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

О, а що се отнася до игралната индустрия, единствената квалификация, от която се нуждаете, е готовността да работите за фъстъци.


Отговор 6:

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

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

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

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

Отговор 7:

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

Второ, в допълнение към няколко основни езика като Java, C ++, C # и т.н., трябва да научите няколко често срещани скриптови езици като Python, Javascript и др. Те са полезни за уеб разработка, генериране на инструменти, оптимизиране на вашата среда и дори версия управление на контрола (да назовем само няколко приложения!).

В повечето случаи в крайна сметка ще ви трябват някои умения за бази данни. Научете за нормализирането, SQL и добрите практики за бази данни в абсолютен минимум. Има много безплатни или ограничени версии на база данни продукти, които ще ви помогнат да научите. Започнах с Microsoft Access, след това MySQL, преди да премина към Oracle и т.н. Във всяка бизнес организация базата данни е цар. Когато анализирам компания, винаги се насочвам директно към хората от базата данни (и отлагам функционалните / ориентирани към процеса момчета и момичета за срещи по обяд).

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

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

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


Отговор 8:

Струва ли си да станете лекар? адвокат? Заслужава ли си да станете [вмъкнете потенциално доходоносна кариера]? Назовете всяка доходна професия и в нея ще има хора, които мразят работата си. Всичко си заслужава, ако му се наслаждавате достатъчно. Хората казват да следвате вашата страст и парите ще дойдат; Казвам, изберете нещо, което ви харесва, което прави пари и работете усилено, за да стигнете до там.

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


Отговор 9:

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

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


Отговор 10:

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

Видях, че думите като „стрес“, „депресия“ се превърнаха в най-добрите думи за подбор на хора в ИТ индустрията. Не се увличайте твърде много от мненията и възприятията на другите. Според мен може да се чувствате стресирани или депресирани, когато не / не можете да балансирате добре работния и личния си живот. Може да не се чувствате толкова добре за вашата работа / работно място. В идеалния случай трябва да започнете да анализирате какво не е наред с уравнението на баланса, вместо да обвинявате откровено професията.


Отговор 11:

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