У каждого формата деятельности есть свои плюсы и свои минусы.
Рассмотрим с точки зрения начинающего программиста/джуна (у опытных программистов акценты смещаются на другие моменты).
Офис.
- Среда для развития. Можно научится за несколько дней столькому, на что в домашних условиях ушло бы несколько недель.
- Четкие задачи. Тебе говорят конкретно, что делать, ты делаешь. Тебе не приходится продумывать досконально архитектуру приложения или думать "а потяну ли я этот заказ?".
- Поддержка наставника и коллег. Тебя не бросят. Первоначально вообще идет введение в курс дела, после - есть с кем посоветоваться, у кого спросить. Кроме того, обычно джуны занимаются примерно одинаковыми задачами, есть, где подсмотреть код, если что-то подобное уже встречалось.
- Стабильная зарплата, устойчивый график, мед. страховка и прочие плюшки.
- Инструмент для работы. Да, есть, например, фанаты ноутбуков, которые на работу их приносят, но, во-первых, не все фанаты ноутов, во-вторых, технически ноут должен быть прокаченным, качественным, в-третьих, вообще не у всех есть такая возможность. Так что хороший мощный стационарный компьютер, хорошие большие мониторы - это реально не просто плюс, а ПЛЮСИЩЕ.
- Платные версии среды разработки и других необходимых для работы программ.
- Офисные условия - рядом много людей, иерархия начальников, "чай, печеньки", как говорят.
Фриланс.
- Свой собственный график.
- Какой будет работа, включая сложность, решает программист при выборе заказа, на который откликается (бывают и большие сложные проекты на биржах, которые лучше брать команде, и совсем простенькие, которые легко сделать самостоятельно... И, соответственно, различные уровни сложности между этими крайностями).
- Условия работы полностью зависят от программиста. Хоть на кухне, хоть под пальмой (кстати, далеко не все делают выбор "работы под пальмой").
- Развитие, как программиста, зависит полностью от самого программиста. Хорошо, если есть на связи соображающий коллега-друг, или сеньор, у которого можно проконсультироваться. Либо навык гугления (поиска информации) 80-го уровня.
- Обеспечивание себя компьютером/ноутбуком, программами для разработки самостоятельное.
- Личный контакт с заказчиком, понимание его запроса и задачи (в то время, как в фирмах есть "специальные" люди, "переводящие" запрос заказчика в ТЗ).
В принципе, есть еще удаленный вариант работы в фирме, но он почти всегда (по крайней мере, до нынешней ситуации с короновирусом) распространяется на миддлов, не на начинающих. В целом - нечто среднее между офисной работой и фрилансом.
Наверное, большинству легче начинать с офисной работы. Для кого-то же офис - вообще идеальный вариант вообще по жизни, независимо от уровня навыков.
Думаю, это зависит от программиста. Путь фриланса, особенно, для начинающих, более труден. Но это не значит, что он невозможен. Он возможен, если человек действительно мотивирован, привык сам себя организовывать, умеет самостоятельно учиться, и готов к ненормированному рабочему дню, самостоятельному решению возникающих трудностей, а так же, желательно, находит свой круг общения - таких же увлеченных программистов-фрилансеров.
Например, у меня есть и опыт офисной работы, и фриланса (причем, далеко не только в IT сфере), и "мое" - фриланс. Поэтому про трудности фриланса не по-наслышке знаю. И очень его люблю:)
В любом случае, учитесь, устраивайтесь на работу, смотрите заказы, все получится. Потому что - что? Правильно, дорогу осилит идущий!
Желаю Вам удачи, если информация оказалась для Вас интересной, подписывайтесь, буду знать, что Вам хочется и дальше читать на эту тему:)