Хочу быть программистом

YUAL

Работал я много лет админом. От эникея до линукса-инженера на высоконагруженных системах.
Но вот осознал, что всё-таки разница между зарплатой программиста и инженера существенна для меня. Если в россии ещё куда ни шло, то всяких забугорях разница более существенна. Опять же больше хороших вакансий, а значит проще с поиском работы. Опять же проще с удалёнкой. Короче надо переквалифицироваться в управдомы.
Тут такой вопрос. Профильного прогерского образования у меня нет. Всякие алгоритмы маркова и машины тьюринга для меня пустой звук. Пробовал читать Кнута - тоска смертная. В плане обучения я предпочитаю сперва столкнуться с проблемой или явлением, а потом читать теорию. Короче хорошо было бы идти так сказать от сохи.
Более менее (так чтоб с нуля и не лазя поминутно на стэковерфлоу) я пишу только на питоне и баше. Доводилось править чужой код или писать "по словарю" на плюсах, руби, джаве, js, пхп, перле и го. из всего этого разнообразия мне проще всего показались питон, джаваскрипт и го. Заниматься я бы предпочёл разработкой серверных приложений. Так мой предыдущий админский опыт был бы хоть как-то релевантен.
Кто что может посоветовать? на каком языке специализироваться? заниматься пилением опенсорса или сразу идти на джуниордевелопера? надо ли что-то обязательно из теории? ну и вообще кто что скажет? может вообще забить и тупо расти в сторону архитектора/начальника отдела?
Беда со сменой специальности в том что человек без опыта никому не нужен, а семью кормить надо.

Werdna

Кто что может посоветовать? на каком языке специализироваться?
Пофриланси. :)
Вообще, полуадмин-полупрогер — это считай техдир, так что идея правильная научиться прогать.
Трудно только будет погрузиться в прогерство на 100%, так как это сразу падение в зарплате. Если нужен фриланс — пиши, попробую подыскать!

borec

Пофриланси.
Плохой совет в 99% случаев. Если непонятно почему, то скажу свое мнение.

borec

или сразу идти на джуниордевелопера?
Согласен на первое время 40к? Тогда у меня скорее всго есть для тебя предложение.

YUAL

в том то и дело, что хотелось бы как-нить избежать.

psm-home

Openstack какой-нибудь устраивайся пилить, там как раз python нужен и твои админские знания/умения очень пригодятся. Сейчас devops в моде, может быть и не придется с низкой зп начинать.

YUAL

http://www.tiobe.com/index.php/content/paperinfo/tpci/index....
http://githut.info/
это я видел. сказать то ты что этим хотел? выводов из этих табличек можно сделать уйму и многие будут противоположны.

psm-home

Из этих ссылок видно кстати, что JavaScript сейчас хотхотхот и надо срочно ботать node.js, react.js и подобное. Ну или не надо.

Kira


Плохой совет в 99% случаев. Если непонятно почему, то скажу свое мнение

расскажи

zya369

да норм совет. он же говнокодером хочет стать )

YUAL

Из этих ссылок видно кстати, что JavaScript сейчас хотхотхот и надо срочно ботать node.js, react.js и подобное. Ну или не надо.
что-то я подозреваю, что большая часть этого яваскрипта это для браузеров.

YUAL

расскажи
ну я так понимаю, что основной аргумент в том, что фрилансеру не надо покрывать свой код тестами, оставлять правильные комментарии, заботиться о том кто будет код поддерживать и т.п.

Kira

ну да, но это приходит само, когда берешься писать код с последующей поддержкой. Просто джуниоры часто сидят и рисуют формочи, сидя на одной и той же платформе очень долго. Когда ты фрилансер и у тебя куча проектов (особенно в стиле "допилить что-нибудь" то у тебя перед глазами очень много разнообразного кода, есть неслабая мотивация осиливать новые технологии (с почти мгновенной отдачей) и вообще жизнь похожа на компьютерную игру.

PooH

лучший способ научит прогать - начать и закончить какой-нибудь проект, хоть крошечный
я бы на твоем месте попробовал бы себя в мобильной разработке - напиши, какую-нибудь полезную программу и задеплой на свой смартфон

PooH

Просто джуниоры часто сидят и рисуют формочи, сидя на одной и той же платформе очень долго.
Что сильно сказывается но профессиональном росте.
ИМХО, самые сложные вопросы в разработке приложений - архитектурные

YUAL

дык у меня есть самописный демон на телефончике. а заниматься всякими ui и прочим я не хочу.

Maurog

заниматься пилением опенсорса или сразу идти на джуниордевелопера?
я бы посоветовал второе
в компании проще познакомиться с реальными задачами и процессами (ревью кода, юнит тесты, доки, срач с аналитиками есть возможность смотреть, как пишет сосед, учиться проще и зп капает. в начале капать может не сильно, ибо это инвестиция.
в яндекс ищут питоноведов, что-то там анализируют, есть геймдев, там тоже скриптуют.
у нас из админских позиций люди в директора прошли, так что это очень хороший фундамент.

6yrop

а что такое серверные приложения? Какой у них функционал? Кто их заказывает?

6yrop

Просто джуниоры часто сидят и рисуют формочи, сидя на одной и той же платформе очень долго.
Если хорошо клепаешь формочки хотя бы на одной платформе, то уровень твоей зарплаты такой, что его получают не более 10% программистов.
Когда ты фрилансер и у тебя куча проектов (особенно в стиле "допилить что-нибудь" то у тебя перед глазами очень много разнообразного кода, есть неслабая мотивация осиливать новые технологии (с почти мгновенной отдачей) и вообще жизнь похожа на компьютерную игру.

Такой мастер на все руке получает среднюю зп, не думаю, что она сильно отличается от зп хорошего админа.

YUAL

а что такое серверные приложения?
приложения, которые работают на серверах в отличии от тех которые работают на компьютере пользователя. конечно есть и пересечения, и можно и фотошоп запустить на сервере, а апач на десктопчике, но на суть это принципиально не влияет.
Какой у них функционал?
очень разннобразный и зависит, ты не поверишь... от предназначения!
Кто их заказывает?
те кому надо хранить и обрабатывать какие-либо данные на серверах.

luna89

Из этих ссылок видно кстати, что JavaScript сейчас хотхотхот и надо срочно ботать node.js, react.js и подобное. Ну или не надо.
Там измеряют количество репозиториев. Для js создают репозитории, которые содержат одну строку кода (буквально например
http://github.com/blakeembrey/is-upper-case
Код:

module.exports = function (string, locale) {
return upperCase(string, locale) === string
}

YUAL

кто-то ведь это ещё и форкнул :)

6yrop

приложения, которые работают на серверах в отличии от тех которые работают на компьютере пользователя. конечно есть и пересечения, и можно и фотошоп запустить на сервере, а апач на десктопчике, но на суть это принципиально не влияет
Часто у приложения есть и серверная и клиентская часть (даже у этого форума). Чисто серверных приложений значительно меньше.
те кому надо хранить и обрабатывать какие-либо данные на серверах.

Примеры?

YUAL

 
Часто у приложения есть и серверная и клиентская часть (даже у этого форума). Чисто серверных приложений значительно меньше.
это преимущественно в вебе, да и то далеко не всём. счас модно юзерское приложение на джаваскрипте, которое общается с сервером через апи. сервер при этом могут писать совсем другие люди.
Примеры?
да стопицот. например софт которым занимаюсь я счас на работе, который обрабатывает мобильный трафик опсоса или занимается обслуживанием сиповых клиентов мегафона.
или например софтина, которая подбирает мне команду в дотке.

luna89

это преимущественно в вебе, да и то далеко не всём. счас модно юзерское приложение на джаваскрипте, которое общается с сервером через апи. сервер при этом могут писать совсем другие люди.
Самое модное - изоморфные приложения, когда html страничка может отрендериваться и на сервере, и в браузере.

6yrop

могут писать совсем другие люди
могут, но это крайне не эффективно. Взаимодействие людей это, наверное, самое дорогое в разработке софта. Если ты можешь и сервер и клиента, твоя стоимость значительно повышается.

0000

Напишу свое мнение.
1. Сайтострой имеет низкий порог вхождения, но постепенно нужно будет разбираться в куче технологий (php, css, js, толпа фреймворков у каждой технологии). Вакансий достаточно везде.
2. С++-проганье: если пукан сразу не порвет от "соединить две строки и вывести результат" и есть усидчивость, то на хлеб с икрой будет всегда. Желательно ботать теорию, как языка, так и алгоритмов, чтобы не прогать криво.
3. C#, Java: это энтерпрайз. По задачам зависит от места, где работать. От "не бей лежачего", до "Еще вчера надо было допилить систему, к которой документации нет!". Для вхождения достаточно осилить пару книг, а дальше по желанию.
4. Эмулятор-погроммиста, напр. DWH-разработчики (Informatica, ODI, Oracle BI и прочая чушь). Задачи неинтересный говно-корпоратив, зато не надо парится - средства осваиваются за месяц (потом рост почти нулевой) и теории нет. В профи можно записаться уже через полгода. Есть вероятность попасть на PL/SQL или T-SQL для поддержки велосипеда. Или можно освоить отчетность (средства также палка-веревка) и сидеть надувать щеки. Имхо этот вариант самый простой.
Есть еще много чего, но я про это не знаю :)
P.S. Gamedev - это обычно проганье на С++ и особо не отличается от разработки какой-либо специализированной хрени аля софта для видеозахвата или для геологов. Разве что зп меньше :grin:

PooH

Gamedev - это обычно проганье на С++ и особо не отличается от разработки какой-либо специализированной хрени аля софта для видеозахвата
геймдев более обширный, и достаточно часто возникают ситуации, когда надо написать "софт для видеозахвата", а через пару месяцев и что-то похожее на "софт для геологов".
зп и в правду меньше, но есть много интересных задач и радость первооткрывателя
особенно, когда пишешь свой движок - самыми крутыми технологиями никто не делится и часто приходится препарировать игры в поисках подсказок

YUAL

я тут кстати писал игрушку. написал серверную часть. а вот написать клиента чё-то жутко лениво. я вот думаю: может на яваскрипте для браузера наваять?

PooH

может на яваскрипте для браузера наваять?
протокол общения с сервером?
для браузер-like игр - норм, а вот 2d или 3d графики лучше уже на чем-нибудь другом писать

YUAL

протокол общения с сервером?
rest api
вообще я писал клон широкоизвестной в узких кругах игрушки http://www.windowsgames.co.uk/slay.html но с мультиплеером.

PooH

да уж тут проще HTML5 взять + какой-нибудь готовый легкий движок для 2d игр, чтобы меньше костылить

apl13

соединить две строки и вывести результат
{
using namespace std;
cout << string("Abc") + "def" << endl;
}

:confused:

PooH

на С изящнее!
 

const char* part0 = "Hello";
const char* part1 = " World";

char* buffer = (char*)malloc(strlen(part0) + strlen(part1) + 1);
if(buffer == NULL) exit(1);

strcpy(buffer, part0);
strcat(buffer, part1);

printf("%s", buffer);

free(buffer);

сразу видно, где память выделяется!

apl13

char* buffer = new char[strlen(part0) + strlen(part1) + 1];
Да ты еретик!

serega1604

на С изящнее!
где тут C?

PooH

:crazy:
поправил, с++ головного мозга же

Papazyan

Ты не проверил результат маллок - где-то умер котенок.

PooH

Ты не проверил результат маллок - где-то умер котенок.
исправил

zya369

родил нового?

Selena

Вообще, полуадмин-полупрогер — это считай техдир, так что идея правильная научиться прогать.
То есть техдир бывший полуадмин-полупрогер лучше чем бывший прогер/полупрогер? Если да, то почему?

Kira

Короче когда я подобное , то мне гуру дали два противоположных ответа: утверждал, что лучше набраться по верхам всякой хуйни и с умным лицом выбирать PHP стек технологий, деметр, что я наоборот всякой хуйни уже набрался и лучше мне съебаться нахуй из профессии вотпрямщяз.
По итогам (два года прошло, могу оценить, да) прав оказался шурик (и то, что он пишет в этом, да и в том треде): главное уметь решать задачи заказчика, так как заказчик чаще всего ищет специалистов под уже выбранный (левой пяткой) стек. Как минимум это верно для всякого ынтерпрайза.
PS: а по теме, что тебе, что топикстартеру: забейте болт на мнение гуру с форума (и меня тоже, да). Тут про хуями помериться и спрашивающего опустить, а не про логичные и полезные ответы. СУТЬ доброфорума такая, да.
Оставить комментарий
Имя или ник:
Комментарий: