На самом деле, если посмотреть глобально и объективно - нельзя сказать, что говнокодеры - это плохо, это как-бы нормально, что не все гении.
В мире миллионы людей ездят на машинах, но профессиональными водителями являются лишь несколько процентов. Но это никак не мешает людям пользоваться личным транспортом, рабочим транспортом, и даже работать и зарабатывать на этом деньги...
Быть сверх-крутым специалистом это круто, но не быть им - ну.. нормально. Как бы все не старались стремиться к идеалу - нужно понимать, что все рабочие места не могут быть заняты исключительно крутыми специалистами, и нужно уметь работать со всеми.
Именно поэтому и были придуманы и ООП и анализаторы кода и методики разработки, которые уменьшают шансы человеческой ошибки и неграмотности значительно аффектить весь проект.
Даже если все внезапно станут крутыми сеньорами, все равно найдутся очередные Кармаки, по сравнению которым ты будешь говнокодером =)
kruslan: Норм программист не во все проекты пойдет.
Крутые программисты вполне могут себе найти хорошую ЗП в проектах поинтереснее, чем например финансинг. В результате и высокой зарплатой туда не заманишь, и даже заманив - грамотные специалисты сбегают, а нужно же понимать, что разобраться в проекте - это несколько месяцев, чтобы его адекватно дальше развивать, и при текучке даже хорошие спецы не подойдут. Поэтому на ЗП в подобных удерживаются только средние специалисты.
Первой была платформа для добавления приложений, а первыми приложениями были не игры, а простенькие проверочные приложения на флеше.
Потом появлялись игры, удалялиь и заменялись более продвинутыми версиями, потому что изначально были выложены некорректно с точки зрения типа приложения, прав и монетизации.
Поэтому не факт, что какоето приложение, существующее вконтакте, именно под этим именем было выложено впервые - вполне могло быть еще несколько версий под другими названиями, которые впоследствии удалены. Поэтому первое приложение найти уже невозможно. А администрация вконтакте вряд ли будет заморачиваться с такой статистикой - это неинтересно.
Веселая ферма, появилась в апреле 2009 года, к этому моменту прошло уже более полугода после открытия платформы для приложений. До этого множество программистов пробовали свои силы, чтобы выложить простое приложение, в котором есть пару кнопок, чтобы просто посмотреть как оно работает.
Можно предположить, что первыми игрушками были варианты крестиков-ноликов, которые затем удалялись. Я тоже парочку игрушек в середине 2008 года выложил, потом удалил, но считать их "первыми игрушками" - в них играло человек 10 моих друзей и все.
Нет, с нуля сейчас никто не пишет ничего.
Вообще, необходимость писать с нуля в машинных кодах полностью отпала.
На ассемблере можно написать небольшие вставки критичных к производительности мест, но для этого нужно обладать весьма глубокими знаниями, поскольку за последние 40 лет процессоры и компиляторы стали гораздо более сложными и умными, и вероятность, что средний программист сможет написать что-то на ассемблере, что будет работать быстрее, чем скомпилированое компилятором - очень невелика.
Про языки программирования - собственно сам компилятор или интерпретатор - это же просто программа. Как и любая другая - она получает данные (исходный код) и работает с ними (генерирует исполняемый файл, или выполняет его как скрипт).
Соответственно программы-интерпретаторы и компиляторы одного языка могут быть написаны на другом. А если этот новый язык является компилятором, то впоследствии переписаны на самом себе.
Александр Керзаков: Разработчику обычно нужно писать код, тестировшику тестировать продукт, документацию пишет Technical Writer, потому что кроме самого текста, ее нужно оформить, что занимает приличное время.
Часто Technical Writer совмещает в себе QA или BA, но все зависит от проекта.
Ilya Pavlov: Нет таких сайтов, где "легче начать".
Там где ниже требования - конкуренция настолько высока, что вместо изучения технологий, будете круглосуточно сидеть в очереди, примерно 209-м.
Идите сразу на upwork.
что значит с нуля?
Чтобы написать что-нибудь, нужно знать какой-то язык программирования.
Если знаешь какой-то язык программирования, это уже накладывает отпечаток на то, как ты пишешь, что тебе не нравится или нравится.
С++ это следующее развитие С, поэтому понятно, что оно похоже.
Что же касается джавы и С# они не синтаксически похожи на Си, они весьма разные. Просто если смотреть совсем со стороны, то ВСЕ языки синтаксически похожи друг на друга - у всех есть циклы, условия и процедуры.
Что же касается задач - не забывайте, что кроме непосредственно работы конечного продукта - программы, есть и другие задачи - например скорость разработки, удобство разработки, кросс-платформенность, простота использования.
Например написать простенький чат очень быстро на php+js, и очень долго на Си и еще дольше на ассемблере.
Например написать программу для обработки различных данных будет проще на java, чем на Си, потому что в java не нужно следить за аллокейшеном памяти, плюс она изначально ООП.
Например написать простенькую автоматизацию резервного копирования будет ОЧЕНЬ быстро на bash или cmd (bat), чем на java или c++
Языков программирования очень много, но все известные и популярные языки стали таковыми, потому что оказались удобными для тех задач, которые сейчас приходится регулярно решать.
w_b_x:
"Неужели этот код сложен?
Его сложно понять или продолжать?"
Вы показали не код, а четыре строчки кода.
Еще раз перечитайте мой ответ - когда код не помещается на экран, его уже одним просмотром не понять, надо вчитываться. Если он не помещается на 10 экранов - не факт, что логический баг в этом коде можно найти за день.
Дело не в том, что какой-то код сложно понять или продолжать, все дело в стоимости этого действия.
Идеальный код - это такой код, который может править джуниор и поддерживать мидер. Идеальный код нужен не сеньорам, а самому процессу разработки и поддержки, чтобы сделать этот процесс более дешевым, предсказуемым и стабильным с точки зрения бизнеса.
Процедурный стиль практически идеален для системного администрирования, CI и подобных вещей, но он нереален для средних и крупных продуктов. Да, не все пишут линукс или MS Office, но продуктов в которых код занимает несколько десятков мегабайт - немало.
Кроме того, даже если вы пишете небольшие вещи, через 3 года будет лень вычитывать код. Почему бы не писать его изначально в ООП, зато через 3 года нужно будет не вспоминать и вычитывать, а быстро просмотреть наискосок, потому что ООП сам себя документирует.
Все не так просто.
Если бизнес гарантирует отдачу, чуваку проще взять кредит, нанять сотрудника который сделает дизайн, а затем ни с кем не быть в доле.
То есть вы сами себе усложняете задачу с рассчетами.
Потому что, например удалить IE из винды целиком нереально. Можно удалить .exe файл, но не все его зависимости, это же часть GUI и сетевой системы.
Большинство вещей, которые вы собираетесь удалить, начисто не удаляются, из-за высокой интеграции. То есть удалятся конечные исполняемые файлы, остановятся службы. При этом невозможно определить последствия. Использовать такое можно будет разве что в качестве embedded, но для этого официально есть отдельная Embedded Windows.
Urushihara: Нельзя сразу влезть во все. Нельзя учиться водить самолет, катер, поезд и велосипед одновременно. Ну или можно, но тогда вы будете учить разные вещи, не всегда взаимосвязанные.
Многие приложения работают на том же http/https, другие на tcp/udp - это стек технологий, доступный практически в любом языке программирования.
Да на любом языке можно писать. В каждом нормальном языке есть библиотека для работы с http/xml/json.
php/java/c++/c#/python/perl/javascript/php
можно даже bash/vb/c/go/scala
Какая разница, какой язык для такой простой задачи. Важно технологии понимать.
Вам нужно понять, что научиться программировать это не означает выучить язык программирования.
Это означает изучить именно программирование - принципы, технологии, архитектуру как это работает. В процессе этого, изучить несколько языков программирования на базовом уровне не представляется сложностью.
Более того, простые вещи типа простого парсера сайта, среднестатистический программист сможет написать на любом (исключая эзотерические) языке программирования, даже если он его видит впервые. Ну займет это немного больше времени. Потому что базовые инструменты во всех языках очень схожи.
vim? =)
На самом деле, если посмотреть глобально и объективно - нельзя сказать, что говнокодеры - это плохо, это как-бы нормально, что не все гении.
В мире миллионы людей ездят на машинах, но профессиональными водителями являются лишь несколько процентов. Но это никак не мешает людям пользоваться личным транспортом, рабочим транспортом, и даже работать и зарабатывать на этом деньги...
Быть сверх-крутым специалистом это круто, но не быть им - ну.. нормально. Как бы все не старались стремиться к идеалу - нужно понимать, что все рабочие места не могут быть заняты исключительно крутыми специалистами, и нужно уметь работать со всеми.
Именно поэтому и были придуманы и ООП и анализаторы кода и методики разработки, которые уменьшают шансы человеческой ошибки и неграмотности значительно аффектить весь проект.
Даже если все внезапно станут крутыми сеньорами, все равно найдутся очередные Кармаки, по сравнению которым ты будешь говнокодером =)