A word of caution for foreigners(especially third-worlders)

Most self-taught programming mediums perpetuate this notion that putting in the work to learn the languages and developing a portfolio is enough to (eventually) land you a job. However, that’s (usually) only true in rich, first-world countries; especially in the US, in which job opportunities for this kind of field exist in abundance and where most of those mediums are headquartered.

Take this advice from me, a self-taught 34-year-old Brazilian who has been learning development for years on end, has a Github, portfolio with CRUD project, Linkedin, speaks 3 languages, and everything else needed and yet has never been anywhere near to getting employed: GO TO COLLEGE/UNIVERSITY, ESPECIALLY ONE WITH INTERNSHIPS.

In countries like mine, if you don’t have a higher degree, you won’t even be picked up by HR’s selection algorithm. Even if you are, there is very little chance you’ll be prioritized over someone who has a degree.

You don’t have to go for a full 4 years CS degree, a 2 year one focused solely on Software Development is enough. What matters is getting the degree and making connections(aka networking).

There might be pushback against what I’m trying to convey here so I’m going to take the liberty to anticipate myself by answering some of the most fallacious arguments I have seen in my journey so far:

  • “I have (or) know someone who is self-taught and was able to get hired”

People win the lottery all the time, that doesn’t make it a reasonable way to earn money. For every success story, there are thousands of failed ones, and people are much keener to publicly post their successes rather than their failures.

  • “You can work as a freelancer”

Good luck competing with literally millions out there to scrape the bottom of the barrel. There’s a reason there are hundreds of those freelance websites lying around and that number is increasing by the minute. It doesn’t take long for them to fall into the “Upwork” vicious cycle of having a 1% of actually well-paid freelancers while the other 99% fights to the death to see who gets that amazing job that pays $1/h.

  • “You can get hired by overseas companies”

Overseas job openings almost always require you to have a Work visa, and you can only get a Work visa if the company sponsors you, which is costly. Now, why the hell would an overseas company sponsor a third-worlder junior dev? Spoiler alert: They won’t. They prefer to hire someone locally, which is cheaper and safer.
Even if you find a job that doesn’t require a Work visa, they’ll probably be looking for Senior devs.

  • “You gotta build your connections/networking”

Not everyone has that possibility. I live in a remote small village very far away from any meetups nor do I have the financial availability to travel to them.
I do agree though that networking(or more realistically “kissing other people’s butt”) is the key to getting hired, not hard work. The idea of Meritocracy is great, but that’s what it ultimately is, just an idea. In the real world though, things work very differently.


Hi @RenanMDP !

I think this is a very interesting conversation.
I am glad you made this post. :grinning:

There is some truth to that.

I think a lot of people are happy when they land jobs being self taught.
So that is one of the core reasons why that narrative exists.
They just want to share their good fortune and help others along the way.
Sometimes it does come from a genuine place. :grinning:

Sometimes the self taught narrative is pushed by those that simple want to sign you up for a product or service.
Obviously those people have ulterior motives and shouldn’t be trusted.

I did go to college, but not for computer science.
I loved my college experience and the career services center did help me make connections and get set up in Los Angeles.

My big question is, How feasible is it to go to college?
I feel like the biggest barrier is cost.

I am based in the states, where college is stupidly expensive and most people take out student loans of some kind.

I think that most people go down the self taught route because they don’t have the money to go.

I think college is great but I am just wondering if that is an option for some people. :woman_shrugging:

I could be way off base, and college is affordable in other countries.
If that is the case, then yeah I would suggest going.


I didn’t write that with the intention of pointing fingers or accusing anyone of malice. I was just pointing out that if you don’t live in a rich country, don’t bet on getting hired as a self-taught developer. Many people, like me, might come across sites like the FCC and bait themselves into thinking that they have the same chance of getting hired as the others who most likely live in the US or other rich countries.

I don’t even have to dig too deep to see this happening in this very forum: Am I commiting a huge misstake?

Any degree is better than nothing. At least over here.

We got affordable college over here. Public universities are considered to be the best and they are free but you have to pass an exam to enter. Private universities, on the other hand, are paid and they vary greatly in both quality and price but you can take affordable loans to pay in monthly installments later. They’re akin to Community Colleges.

If the person can’t attend any sort of college though, I’d advise not going the self-taught route. The chances of getting hired as a self-taught developer by applying to jobs and sending curriculums are pretty much null.

The only “workarounds” is to either be a programming genius or win the networking lottery. Neither is feasible.

As a self-taught developer in the UK, I’d say this all seems true.

I’m very aware that I’m a benificiary of luck w/r/t where I was born. I’ve always worked for companies who hired foreign-born developers, but almost universally they have been engineering/CS graduates, and non-junior (edit: unless direct out of UK university). Generally they have been graduates of UK universities and/or from countries with favourable work visa rules (Commonwealth countries, EU countries pre-Brexit). The only direct hires that had not previously worked in the UK iirc were from the EU (so had freedom of movement and that will have stopped now), or Indian via connected businesses.

Critically no juniors, ever, unless they were CS/similar UK graduates. Note that I’ve never worked anywhere where a degree was seen as particularly important (afaik the majority of developers I’ve worked with have not been CS/similar graduates, though most have been university educated). However, it’s as you’ve outlined, and there are basic, fundamental, practical problems hiring non-domiciled foreign workers (legal problems!)

1 Like

Oh yeah, I know that :grinning:

I think that we just excited that it worked out for us and so we want to share the narrative with everyone else
But sometimes, it is hard to remember that it is different in other places around the world.

Well, that’s a positive.
In the states, we have made a huge mess of our education system.
It is nice to see other countries that have it together.

I don’t know if I would phrase it as not feasible.
I would probably phrase it as it takes a lot of skill to network well.
And it is not easy.

My answer is deeply rooted in my personal experience.
So, I do recognize that. :grinning:

In my past career as a musician, all of the money I made was through networking.

I would say that for self taught developers, you do have to be really good at networking.
And course there is luck :grinning:

But I will disagree with you on this point.

I think a healthier approach is to look at networking as making genuine connections rather than kissing someone’s ass. :grinning:

I mean feasible on a large scale. Here, most developers are hired through job applications. Expecting a shift where most would need to network in order to get their first job is unfeasible because that’s not how it’s normally done in our culture, and honestly, I’m not kind to the idea of networking being an implied necessity at all.

Musicians and other self-employed professionals who rely on themselves need networking because networking is literally what makes them a living. That’s completely different from being hired as a developer by a company. In poor countries, the overwhelming majority of self-taught developers can’t be self-employed who depend on their own networking because most citizens don’t have enough disposable income to pay for the cost. Hell, even professionals who offer important commodity services like Electricians can barely make a living over here.

Maybe in the US. Over here even if you get “fast-tracked” by someone, chances are the HR won’t hire you because of a lack of a degree.

Approach it however you want. It doesn’t change the fact that something cannot be genuine if it’s done on the basis of a requirement.

Well, we can agree to disagree here.

The reason why I am a proponent of networking is because it helped me land my first tech job.
It is a part time junior dev job, but still a job :grinning:

Maybe we will never see eye to eye on networking because our cultures are so different.

Well, I wasn’t really implying that developers become self employed.
I was just using my music example because all of the teaching jobs I got were through my network.

At the end of the day, I do understand that different cultures have different expectations when it comes to jobs.

In the states, there is some push back if you don’t have a degree.
But there is flexibility here.

Hopefully as a tech community, we can get to a place where there are viable options for foreigners to get into the tech industry if they can’t afford college

1 Like

We won’t see eye to eye because basing such an important notion such as someone’s first job and/or career on elements that are vague, biased, and superficial is inherently flawed. Potential workers should be judged by their hard work and drive, not by how good they are at making friends and chatting people up. Not everyone is extroverted or fit to deal with social situations. Many people, like myself, are very introverted, possibly on the spectrum and that would put them at a severe disadvantage.

I don’t have anything against networking by itself, or anyone getting hired in such circumstances. I just don’t think that should be the central piece for everyone’s employability.

Tragically, the world does not always work as we feel it should. Connections matter. Connections can get you access that your skills, portfolio, and credentials alone cannot. That’s just how the world is, unfortunately or fortunately.

I always encourage people to get a degree if it is an option for them, in terms of cost and access. That is the easiest way for junior developers to communicate competence to companies. But it is not a realistic option for all people.

It is possible to make it as a self taught developer. It is certainly harder to get that first job when you don’t have a degree, but it is not impossible by any means.

Now, I would agree that ‘get a programming job in a few months of self study with no degree’ is wildly improbable. It is hard work to get that first job and it takes time. But it is not impossible.


This is exactly my experience (Chile).
I think the reason is that there are too many people applying for the same job (I have only applied for trainee and jr. positions).

So, yes. This is something that more people should be aware of :+1:

Cheers and happy coding :slight_smile:

1 Like

Maybe with a link to your Github account and portfolio website people might be able to provide some advice that might help you land a job. Sometimes a fresh set of eyes can spot those areas that could use improvement that might be holding you back from landing a job. And if people do offer some advice take it to heart without being offended, after all there are areas where everyone could improve.


Just click on my avatar and it’s there.

I never take offense.

Besides, no amount of advice - or Americans butting in to tell me I’m wrong about my own country and circumstances - will help because as I have explained, the portfolio is not the issue at hand.

You are allowed to stop if coding isn’t the right fit for you. If you believe it is impossible, you probably are correct about your odds.

One does not need belief when one has facts. Moreover, this discussion isn’t about my personal circumstances, despite the apparent effort to summon such a strawman.

I also never said it’s impossible, I acknowledged exceptions, but exceptions don’t make the rule.

Now, whether someone is to give up or face the odds, that’s for each to decide.

You are continuing to say it is essentially impossible for you while people are offering to help. At this point, I’m not sure exactly what you are looking to gain, which is why I reassured you that it is OK to stop if you believe it is appropriate for your circumstances.

I merely used my example to convey a broader reality that affects us all.

Don’t get me wrong, I appreciate any intention of helping but I don’t see how that would change reality. Giving a homeless person a house doesn’t do away with homelessness, in the same vein, even if I got the dev job of my dreams it wouldn’t change any of the facts I stated.

I’m not looking to gain anything. I came here to do exactly what the title says, to give a word of caution. Any other time I posted I was replying to someone who responded to me or brought something to my attention.

By the way, the reason I’ve never personally asked for help is that I’m already at a Junior level. My English and Dev skills are probably better than most of the fresh Dev graduates over here. However, as a self-taught, the only way I’ll get a job through normal means is if I up my skills to a Full or maybe even Senior developer, and then with a lot of luck, I’ll land a Junior position. Yay!

1 Like

Side note - a homes first approach to addressing homelessness has actually been shown to reduce homelessness. If you aren’t focused on where to live, it is easier to get a job.

You would be surprised at how small changes to a resume or CV can make a big change. It doesn’t remove the need for networking, but neither does having a degree. I have three degrees from three well know universities, and networking is still critical for me. And I am an introvert who has mental health struggles and isn’t great at networking. It’s still key though. Can’t change how the world works.

But that also doesn’t change the fact that there are self-taught developers from the third world who have gotten jobs. It is possible. Not having a degree is a disadvantage. Being from the third world is a disadvantage. But people have surmounted those disadvantages.

But it’s totally OK if the level of effort you have to expend to surmount these obstacles isn’t worth it to you. It’s hard, which is why I always recommend getting a degree if it is a reasonable option.

External feedback is critical though. You need to be able to work with others and you need to be able to ask others for feedback and advice. Modern software is written in teams. You might be right that you’re just better than other people who are getting jobs, but that assertion doesn’t really help you get a job.

1 Like

I meant just one house to just one homeless person. I agree with you though, John Oliver did a great segment a week ago talking exactly about that.

I mean changing the reality for the overall self-taught population, not just me.
As for my CV, I overhauled it some time ago, it’s not perfect but I don’t think there’s any major flaw.
I’m honestly not bragging or anything. It’s just that I’ve been at this for years and I’ve probably already absorbed most of the vital advice/feedback about having a concise CV.

Your example differs from the issue at hand though. Networking after you get your first job is fine, but networking to get your first job is problematic and something that many people, like myself, are not able to do it.

Hard disagree. The world has been changed many times. Even now, workers in the US are going through an attempt to change their reality with “The Great Resignation” movement.

Naturally, the ones participating and with a drive to change an unfortunate reality are always the ones getting shafted from said reality. You won’t see any Silicon valley dev who sits their privileged asses in an air-conditioned room, earns $100k per year, and drive their Teslas around even entertaining the idea that the world could be changed, since, in their eyes, there’s nothing to change. If anything, we get the usual Republican Libertarian Chud drivel: “It’s their fault! Anyone can do anything with hard work! They’re just lazy! Stop whining and pull yourself by your bootstraps! etc”.

As a self-taught, I’ve already reached and completed the level of effort required to overcome those obstacles.
I appreciate your words but ultimately, they serve no purpose. It’d be like if I kicked a paraplegic who has no chance of walking ever again out of their chair and told them “You can walk again. But it’s totally ok to give up if you’re not willing to put the level of effort required.”

Even if I had a perfect portfolio, I don’t see how that would help with the issues at hand. In any case, anyone’s free to look at my CV and/or Portfolio.

I do have soft skills. I’ve worked my entire life dealing directly with customers and communicating with my team.

I honestly have no idea how someone could realistically change that job opportunities, for self-taught and university taught people, are often driven by connections. Credentials can reduce this, but sometimes you need connections to get access to those credentials, unfortunately.

My first development job was based 100% on networking. My future jobs probably will be too. Is it problematic? Yes. But people trust their network.

Ok, do you have any ideas on how to change this? I have no ideas how we can change the fact that the world runs on connections. There seems to be too many people with too much power heavily invested in not changing this fact.

Part of what we try to do here on freeCodeCamp is to provide a way for people to build their skills and network so that they can decrease barriers that they face. We can’t make networks for people, but we can remove access to knowledge from behind the paywall of higher education, and we can provide all the help our volunteers are willing to donate.

I don’t think you actually know the situation and circumstances for developers in US tech hubs. This sort of generalization is neither useful nor helpful. Generally, tech workers in the US tend to be pretty progressive people trapped in a deeply regressive system of US capitalism.

At no point have has anyone here said anything like your strawman. In fact, I have said that it is perfectly fine if you do not think that the level of effort required to become a developer from your situation is unreasonable. Possible and reasonable are two different things. It is possible to become a self-taught developer, but it very well may require unreasonable extremes in your circumstance.

But you seem to be saying that you don’t have a job. So the obstacle has not yet been cleared. Unfortunately, self-taught developers have to work harder than college graduates to demonstrate that they have a level of knowledge commensurate with what a 4 year computer science program teaches.

Employers do not like taking risks, and hiring a new developer is an expensive, risky endeavor. They want some way of knowing that their new employee has a certain minimum level of knowledge and skill. That can come from a credential, that can come from a portfolio, that can come from their network, or some combination thereof.

This is an absolutely unreasonable characterization of what I have said. You seem to be saying that there is nothing more you can reasonably do to get a job. If this is the case, I’m saying that it is OK for you to stop spending effort on a goal you do not think you can reach.

But I find it unreasonable for you to declare the goal as unreachable for anyone in a situation similar to your own when some people have found a way to make it work via a combination of skill, networking, luck, and whatever else.

I agree that the world is crappy. I don’t know how we can completely change some of the core problems in the world.

But I do know that the education freeCodeCamp provides has helped people get jobs, so I choose to donate my time here to increase access to knowledge.

At this point, I think I have said all that I can and I am not enjoying how we are interacting, so I am going to step out of this conversation.

I wish you the best and hope that you find the best solution that works for you and your situation.

1 Like

If you want to continue to try to get a job there are things you can do that would help:

  1. Code more. your GitHub account only has 14 commits for the last year. Not really impressive for a hiring manager to see.

  2. Kind of goes with 1. Build more complex projects. A rock paper scissors game, number guesser game (which you built both 2 years ago) and a temperature converter are the type of things people built when they were just beginning to learn. Every job description I’ve seen is looking for someone who can do more than these basic types of projects, and they want more than just HTML, CSS, and JavaScript. Even for entry level jobs they are looking for knowledge of other frameworks, libraries, and testing .

Doing those things will demonstrate your interest and continued passion to learn.

Just some friendly advice because if I was a hiring manager looking at your portfolio I would wonder what you have been doing / learning the last couple years, do with it what you will.