Автора малость понесло не туда... Когда ты учишься, ты просто днище е"аное, и таких как ты дофига, потому что начать учиться легко... И таких новичков можно плодить легко и просто. Но запомни, таких много и как ты выразился "конкуренция большая".
Тебе нужно знать следующее на одного специалиста, примерно 5-25 МЕСТ. В то время как у днищ е*аных, все наоборот 10-30 днищ на одно место.
И тут абсолютно в любой нише, в любой технологии так есть и будет. Учи то, что тебе нравиться и никогда не останавливайся, и забей болт на "конкуренцию на фрилансе", просто иди новичком как JUNIOR в любой низкооплачиваемый офис, где есть хотя бы 1 senior и ты за 1 год мб даже станешь программистом, а не "типо кодером". Как показывает практика умные ребята на фулл ставке становятся программистом в течении 1-2 лет(при условии что уже знали 1-2 языка программирования типо js+php), слегка тормознутые за 3-5 лет, далб*ебы по личным причинам(их мозг) так и не могут стать по настоящему программистом, который прогает в уме и лишь потом просто пишет это на каком то языке. Ибо настоящий программист прогает не на языке, а с использованием языка.
P.s там где нет конкуренции, нет и работы
P.s.2 - пока ты днище, учись тому что тебе интересно(сайты, игры, андроид, ботоводство и пр.) в общем сам выбери и учись в этой сфере.