LINUX.ORG.RU

Программирование. Самоидентификация.

 ,


6

4

Всем привет,

Прошу внимания и совета :)

Мне 31, пол мужской.
Образование высшее экономическое, склад ума скорее гуманитарный.
Занимаюсь SEO более 7 лет и по ряду причин задумываюсь о переквалификации в управдомы программисты.
С программированием знаком на уровне быдлоскриптования для автоматизации рутинных задач (PHP/Javascript/HTML/Bash/RegEx)

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

Уже как 3 года убежденный маковод и виндовые продукты / системы уже не воспринимаю

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

Уважаемое сообщество, 3 вопроса:

1) Стоит ли начинать в таком возрасте?
2) Стоит ли с моим анамнезом вообще рассматривать программирование, как область развития (особенно смущает нематематический склад ума)
3) ПО, Web-разработка (frontend/backend) или iOS-приложения? И, если 1 или 2 вариант, то на какие языки и технологии стоит обратить внимание?

Про начать изучение ЯП с основ алгоритмизации / ООП я в курсе
Споры на тему 'этот язык живее всех живых, а этот - нет' читал и это, разумеется, лишь добавило вопросов
Понимаю, что сегодня программирование сводится к грамотной работе с фреймворками и либами (возможно, я не прав)
Где и какие искать книги и видеоуроки - смогу разобраться самостоятельно
Но в общем и целом, я нуб (хоть и погугливший по теме)

Понимаю, что аналогичных тем уже миллион с хвостом, но все же я на распутье и буду благодарен за конструктивную помощь и вправку мозгов.
P.S. Если промазал с веткой - прошу админов перенести в правильное место.

Спасибо,

Стоит ли начинать в таком возрасте?

Ставь вопрос иначе. В таком возрасте уже пора бы заняться именно тем, что нравится, если ты раньше не нашел своего. Хотя лично у меня такой проблемы не было, всегда с некоторым сочувствием смотрел на людей, которые упирались рогом на стезе служения мамоне, ради денег занимаясь большую часть жизни тем, что не доставляет им никакого удовольствия. Вот честно, смотрел и думал: возможно ли так жить? Надо или учиться любить то что делаешь, или учиться тому, что любишь.

Лет в 19 мечтал заняться кодингом, считая эту профу достаточно серьезной. Достойной так сказать, меня. Как и ты, маковод. ^_^ Но не решался. Решился только около 30-ти. И не потому что созрел, а потому что код понадобился конкретно мне. А платить за то, что мог бы сделать сам, да еще давно хотел этим заняться, - рука дрогнула. Выбор стоял между похапе и жабой. В первом видел профиты, - скорость получения результата. Во втором, - универсальность абилки: серверы, десктопы, мобилы, любые прикладные области. (не знал, что позже профит выростет в этом направлении, когда широкое распростарнение получат андроиды) Бросил монетку. Выпала Java. Тогда я расстроился, что учиться придется дольше, но сейчас благодарю Бога.

Короче, ладно суть:

Не люблю жесткую зависимость от чего-л в профессиональном плане (алгоритмы гугла, к примеру)

Вот скажи, сеошник, в чем сила алгоритмы гугла по крайней мере не меняются? А если и меняются то несильно, да? Хочу тебя обрадовать, еще за время твоего обучения твой язык накатит пучек минорных обновлений, и по ходу всего будущего трудового пути тебе придется постоянно быть в курсе направления его развития. Постоянно доучиваться. А ты, судя по всему (прошлая профа+маковод+внимание на фреймворки+подключил к решению своего вопроса ЛОР) по натуре халявщик а не исследователь. И профа эта интересует тебя ради статуса интелелктуала, а не как возможность самореализации. Хоть и написал

- люблю учиться и разбираться

Походу слукавил. Думаю, тебе не понравится постоянная гонка технологий, и необходимость за ними следить. Тем более, если не питаешь интереса ко глубинной сути вещей, хороший кодер из тебя врядли получится. Эта работа с низким уровнем благодарности: добротную не заметят, а косяки воспоют в эпиграммах, увековечат в анекдотах. Ее нужно любить, чтобы получать с нее удовольствие. Потому что хвалить тебя будут редко, и лучи обожания заработать будет крайне тяжело.

И не глядя на все вышесказанное, все же займись. Возможно для тебя пришло время не только и не столько менять профу, сколько вообще пересматривать отношение к жизни. Может быть, например, ты действительно захотел создавать@созидать. И конечно же, эта область из всех доступных тебе ближе всего. В бетонщики явно не тебе (хотя работа значительно спокойней и здоровей)

мне 31

Прекрати загоняться. Один мой знакомый в этом возрасте только прекратил по тюрьмам шататься. Закончил бизнесменом. Успешным, и уважаемым. Хотя и не сильно богатым. Недавно рассказывали про дедка, который только в 60 бросил бухать. Сейчас барыга и пройдоха, при деньгах и почете. Знавал одного дизайнера, который за комп сел в 30 лет. До этого бухал по-черному. За 5 лет стал одним из самых уважаемых и видных специалистов в своем городе. Обращай внимание на такие истории. И если ты спрашиваешь «не поздно ли», то уточняй, - для чего именно. Чего ты хочешь? Стать суперзвездой отрасли? Явно не успеешь. Обрести самоуважение человека-творца? Успеешь, если будешь работать прилежно и с любовью к делу.

За себя скажу так: я от программирования получил в полном объеме то, что хотел. Для меня этот скилл проходной, поэтому оставил на еденичке. Нужне мне возможности он в свое время открыл. Плюс к ЧСВ так же очень серьезный.

Ты сам можешь ответить сейчас на все поставленные тобой вопросы. Начать нужно с того, что четко сформулировать свои задачи. Устроить минутку честности. С собой.

Csandriel
()
Ответ на: комментарий от pseudo-cat

для задач с высоким уровнем абстракции, нужно использовать подходящие ЯП с готовыми абстракциями

масло масляное

x4DA ★★★★★
()
Ответ на: комментарий от x4DA

Что такое задача с высоким уровнем абстракции в программировании?

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

antares0 ★★★★
()

ed

внутри ed'a вызывай интерактивный шелл ака !bash

для хардкода(ради скорости , тех алгоритмов которые на баше либо медленно либо очень уродливо ) пиши на Cях либо более прикладных язычках типо питона.

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

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

короче ооп это редкое и очень ценное , пушкой же по воробьям это признак неадектватности знаний опыту.

qulinxao ★★☆
()
Ответ на: ++ от Eddy_Em

C++ с его костылями ненужен, тем более сейчас.

си

Можно да, но на нем нынче особо не наживешься.

z00ke
()
Ответ на: комментарий от z00ke

А, нужно чтобы "нажиться"! Тогда — пыхпых и прочее "ынтырпрайзное" говно. Быдловебокодеры вроде как вполне наживаются.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

А, нужно чтобы «нажиться»!

да тут выбор не велик -> PHP, C#, Java первым языком, на остальном подохнешь под забором к лету.

umren ★★★★★
()
Ответ на: комментарий от umren

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

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от antares0

я спрашивал определение, а не примеры.

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

x4DA ★★★★★
()
Ответ на: комментарий от x4DA

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

pseudo-cat ★★★
()

Догадываюсь, что тема протухла, но вставлю свои 5 копеек.

Существует две основных линейки развития: технарь и менеджер. Технарь любит разбираться в технических деталях, решать алгоритмические задачи, создавать, решать проблемы и т. п. Менеджер любит организовывать и работать с людьми.

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

Если ты менеджер - иди в менеджмент.
Если ты технарь - не лезь в менеджмент.

Коммерческая разработка: там нужно минимум 3 человека:
1) Бизнес-администратор ака ген. директор ака CEO, который сможет организовать бизнес, построить бизнес план и т. п.
2) Маркетер ака CMO, который сможет найти клиентскую базу и обеспечить продажи
3) Технарь - который, собственно, создаст продукт и обеспечит его поддержку.
Все это разные типы личностей. Ген. дир и маркетер - это менеджеры, но подход к работе у них разный.

В общем, я не рекомендую тебе самостоятельно лезть в коммерческую деятельность. Лучше наймись в приличную компанию, с хорошим именем, где будут платить достойно, а местный HR (и/или менеджмент) обеспечит тебе счастье на работе - да-да, такие компании бывают. Ну худой конец - в стартап в котором бы было минимум 3 человека по схеме выше, которым бы ты доверял и. т. п. Помни, что в стартапе по статистике первые 2 года прибыли не жди, короче это отдельная тема. Если так не любишь менеджмент - подайся во фрилансеры. Но там свои нюансы. Но я настоятельно рекомендую хорошую компанию.

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

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

Вообще, я бы рекомендовал начать с Pascal. Но нужно понимать, что на практике ты потом его очень вряд ли будешь применять. Просто с Pascal на C перейти проще. Что до С - он не простой для начинающего. Если будет невмоготу, пробуй что-то типа PHP, Java и т. п. JavaScript не рекомендую, ибо это очень специфический язык (несмотря на сходство с C) и может повернуть мозги в неправильную сторону.

Обязательно освой ООП.

На изучение C, думаю, понадобится месяца 3-6 активных занятий. Если начнешь с Pascal/Java/... - прибавь еще месяц.

С таким багажом ты потом с легкостью потом освоишь любой язык программирования. Например, овладев С, я помню, что на то, чтобы написать что-то простенькое на JavaScript (и с PHP то же было), мне понадобилось минут 15-30 шуршания в Интернете и чтения особенностей этого языка; неплохо, правда?

Это если ты хочешь стать программистом. А если ты хочешь по-быстренькому впрыгнуть в какую-то контору и зарабатывать написанием кода - это Java, PHP, JavaSript. Но я не рекомендую такой путь. Хорошая база - она всегда останется хорошей базой.

ИМХО.

Kroz ★★★★★
()
Ответ на: комментарий от z00ke

Зашел только чтобы увидеть это сообщение. Я рад.

loz ★★★★★
()
Ответ на: комментарий от Kroz

А если ты хочешь по-быстренькому впрыгнуть в какую-то контору и зарабатывать написанием кода - это Java, PHP, JavaSript. Но я не рекомендую такой путь. Хорошая база - она всегда останется хорошей базой.

добавил бы сюда еще C#, а я рекомендую как раз такой путь, базу можно добрать, но опыт индустриальной разработки уже будет и нехилый

umren ★★★★★
()

Образование высшее экономическое, склад ума скорее гуманитарный.

Стоит ли с моим анамнезом вообще рассматривать программирование, как область развития (особенно смущает нематематический склад ума)

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

Став программистом, вам придется конкурировать с другими людьми, которые с самого начала хорошо ориентировались в программировании и математике. Хороший программист - это хороший математик, потому что все дело в алгоритмах. ООП значительно тут все облегчает, не надо особо заморачиваться на самых основах. Но все равно, отлаживать программу и особенно оптимизировать ее будет легче, если человек эти самые основы знает. Так что вам решать - быть хорошим продавцом обуви или хреновым сапожником. Конечно, пройдет время, и вы станете асом, но... Есть ли смысл переучиваться, может стоит уже прямо сейчас идти работать там, где у вас максимальный КПД?

Передо мной тоже стояла и по-прежнему стоит такая же перспектива, как и перед вами, но пока что я решил следовать пословице «где родился - там и пригодился». Т.е. если школа и универ - гуманитарные, то иди в гуманитарии, а если технарские - иди в технари. Можно попытаться поискать смежные гуманитарные области, где больше платят (если тут дело в деньгах) и доучиться, чем переучиваться с самого 0.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

разделение на гуматинариев и технарей в смысле противопоставления их способностей это миф.

есть люди умные и остальные , умные в целом умны и отличаются этим от остальных, среди умных одни предпочитают дискретное другие континуальное , при этом что первые , что вторые могут лучше не_предпочитаемое чем остальные.

qulinxao ★★☆
()
Ответ на: комментарий от qulinxao

да, как-то я спорил на тему «все крутые шахматисты математики», и это полный миф, 70% «крутых» шахматистов либо недоучки которые бросали, либо гумманитарии.

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

umren ★★★★★
()
Ответ на: комментарий от qulinxao

есть люди умные и остальные

А есть еще люди подготовленные и не очень. В гуманитарной школе, как правило, хуже подготовка по точным наукам, а в технической школе хуже по иностранным языкам. Тут не вопрос способностей. Скорее разные цели, разный подход.

Deleted
()
Ответ на: комментарий от Deleted

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

qulinxao ★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.