Даниил Демидко: Официальный производитель C# не поддерживает ничего, кроме виндовс. Сторонние реализации могут заметно отставать в возможностях, в то время, как java - официально кросс-платформенна.
Работа с java более прозрачна и проста. Например даже не требуется прав администратора, чтобы установить java и запустить на нем приложение. В то время как .net framework устанавливается только от имени администратора, и зависимость версии .net и версии ОС гораздо более жесткие.
Ну и java как миниму старше. Мелкомягкие постарались скопировать идеи и сделать свою платформу - у них это вышло, что (из-за конкуретности) пошло java только на пользу.
darksladen: Вы сильно ошибаетесь.
Заказчику нужен рабочий продукт. Ему вообще плевать на ваш код. Вот серьезно.
Заказчик зарабатывает не хорошим кодом, а работающим продуктом. И если говнокодер напишет говнокод, но который при этом будет работать - у заказчика будет прибыль, а у программиста зарплата.
ВСЯ СУТЬ красивого кода сводится только к одному - КРАСИВЫЙ КОД ЛЕГЧЕ ЧИТАТЬ ПРОГРАММИСТАМ, отсюда косвенно идет удешевление разработки и поддержки. ВСЕ, ни на что другое красивый код не влияет.
И в офисе может встретиться такая же ситуация, когда везде говнокод, причем гораздо чаще, чем на фрилансе. Потому что в энтерпрайзе главный не программист и не архитектор, а заказчик, который дает неделю на 10 фич, и реализовывай как успеешь. И если не успеешь - заказчик наймет толпу индусов, которые наговнокодят, но успеют, а ты и весь твой офис - останетесь без зарплаты и без работы.
Короче не путайте качество кода, и место где его пишут. Офис и фриланс тут вообще не причем.
Денис Букреев: Так собственно клон репозитория и не должен быть, должна быть процедура деплоя (вплоть до простейшего скрипта, который копирует файлики, возможно обновляет что-то в базе)
Вообще, желательно почитать про деплоймент приложений и не хранить на боевом сервере именно git репозиторий.
Нужно, чтобы по команде, на веб-сервер заливался указанный вами коммит, или указанная вами ветка, а не пушить на боевой сервер непроверенные изменения.
beduin01: "Мало того что он в разы дырявее чем тот же C#"
Чтобы далеко не бегать и не быть голословным, приведите хотя бы парочку примеров дырявости в PHP?
(Надеюсь понимаете, что имеется ввиду именно дырявость в PHP, а не в продуктах на нем написанных).
Когда я устроился на свою первую работу - я уже был хорошим джуном. А ведь в мое время интернета вообще не было, и чисто айтишных контор практически не существовало вообще, тогдашний провайдер - это парочка серверов и кучка модемов. Были просто конторы, в которых потихоньку вводили ИТ технологии для улучшения бизнеса.
Когда-то с моей помощью открылась первая интернет-аптека в стране. Никто из нас не знал что и как делать, и "никто нас этому не учил", учились сами, много учились, много работали.
Сейчас вы можете гуглить, читать википедию - на все глупые вопросы можно найти УЖЕ готовые ответы. Вам нужно научиться их искать - в этом заключается весьма полезный навык, который пригодится на всю жизнь - в современном море информации, уметь найти то, что вам нужно с максимальной скоростью, проигнорировав спам - полезно.
Уточните что вы подразумеваете под доступностью сайта:
* существует ли домен (проверяется dns)
* включен ли комп (можно проверить по ping, но иногда icmp может быть заблокирован)
* поднят ли на нем веб-сервер (curl, или другой GET с парсингом заголовка ответа)
* работает ли на веб-сервере сайт (curl или другой GET на конкретную заранее известную страницу сайта с * проверкой заранее известного контента)
* работает ли на сайте конкретный функционал (множество curl/GET на разные страницы с параметрами и проверкой заранее известного ответа).
Понимаете - у вас уровень вопроса не соответствует вашим текущим знаниям, поэтому будет куча проблем с пониманием того, что вы на самом деле хотите.
Все вышеперечисленные вопросы должны относиться к чужим сайтам в инете, или конкретному набору сайтов, которые принадлежат вашей компании?
Если вашей компании - какой конкретно у вас доступ к сайтам - есть ли shell доступ к хостингу, есть ли возможность установить свой софт для мониторинга на сайты - и так далее.
Нельзя просто брать и писать мониторинг, не имея полного представления о возможностях и требованиях.
darksladen: На фрилансе тебя никто не поругает за твой плохой код..
На фрилансе пару жалоб от заказчиков - и работу вообще не найдешь, количество бирж ограничено, и вообще на фрилансе сарафанное радио - вещь крайне немаловажная.
Ingernirated:
Давайте отвлечемся и вернемся к математике.
Представьте, что вы школьник 1-го класса и пришли изучать математику.
И тут вы начинаете - я наверное хочу изучать теорию графов, или нет, я буду изучать комбинаторику, или нет, я буду изучать дифференциальную геометрию. При этом вы еще ни таблицу умножения не знаете, дробей не знаете, но уже хотите специализироваться.
Не парьтесь выбором вообще - станьте джуниором хотя бы где-нибудь, изучите смежные технологии - перейти с джуниора одного языка на джуниора другого языка - не так уж сложно, поэтому вместо того чтобы бегать и искать что учить - начните учить хоть что-то.
Сейчас вам очень сложно пояснить что лучше и почему лучше, потому что базового понимания - не хватает.
В программировании знание самого языка программирования - это примерно 5-10% от того, что нужно.
Я начинал со спектрума, где на бейсике и ассемблере искал как сделать себе вечную жизнь и бесконечное оружие.
Затем со скриптов автоматизации.
Затем с игрового сервера.
Лет через 5 я отчетливо понимал, что 4 года назад я писал гавно, а год назад ну вроде ничего так, но тоже переписать бы.
Сейчас, 20 лет спустя, я понимаю, что переписать можно было бы вообще все.
Путь к совершенству бесконечен, потому что пока ты осознаешь что и как можно было сделать, мир вокруг меняются, инструменты совершенствуются, поэтому погоня за идеальным кодом - вечна.
Учитесь не просто писать код, а решать ПРАКТИЧЕСКИЕ задачи - то есть не забывайте, что программа - это инструмент для того, чтобы сделать что-то другое, и всегда есть понимание приоритетов.
darksladen: Хотите стать ценным специалистом - решайте ценные вопросы (бизнес вопросы, инженерные вопросы).
Вы же ударились в красивый код, как в самоцель, а вся суть красивого кода заключается исключительно в удешевлении поддержки и разработки. Но никак не в функциональности или стабильности самого продукта. Ну разве что косвенно.
Интересуйтесь тем, как продается или что именно делает ваш продукт, как сделать ваш продукт более популярным, более ценным - и будете ценным специалистом.
Ingernirated: Не нужны вам хорошие книги по программированию. Вам нужно просто программировать. Адекватное понимание экосистем и тех вопросов что вы пытаетесь поднять, приходит на уровне мида и выше
darksladen: У вас какое-то неправильное представление о фрилансе и офисе.
Разница заключается ВООБЩЕ не в том, где кого будут бить по рукам.
На фрилансе - пару плохих отзывов и вообще работу не найдете. В офисе можно годами ничего не делать и получать зарплату.
А можно на фрилансе на всех ложить болт, выполить пару хороших заказов в год и жить в свое удовольствие. А в офисе пахать как лось весь год, а тебя в отпуск на две недели подряд не отпускают.
Поэтому не нужно сравнивать офис и фриланс шаблонно - все зависит от того, как устроились в офисе, как устроились на фрилансе.
Евгений Шатунов: Xamarin? Mono ? - тоже разработка Microsoft.
Ну да, Microsoft иногда идет навстречу, но в опенсор он выложил ограниченные куски .net framework.
Спасибо, что указали. Тем не менее, в реальности - 95% разработки на C# Это ентерпрайз под основную платформу.
Я скептически отношусь к фразе "лучшее, что есть". В современном мире уже невозможно перечитать все, что есть, чтобы выбрать из него лучшее.
А в качестве практики - IMHO лучше будет взять готовый набор типа ардуино-конструктор с практическими инструкциями пары десятков рабочих схем - то есть очень наглядная практика почти без теории.
Работа с java более прозрачна и проста. Например даже не требуется прав администратора, чтобы установить java и запустить на нем приложение. В то время как .net framework устанавливается только от имени администратора, и зависимость версии .net и версии ОС гораздо более жесткие.
Ну и java как миниму старше. Мелкомягкие постарались скопировать идеи и сделать свою платформу - у них это вышло, что (из-за конкуретности) пошло java только на пользу.