Existential / Career advice

Hi everyone,

I’m one of those silents, avid, and immensely grateful ghost readers of this community.
I devoted most of my free time to learn to program this year and Elm quickly became my ‘tongue of thoughts’.

It was a tremendous experience. The quality of the material you produced, the libraries, the language itself, the discussions on this forum, the podcasts (!!), it’s like everything conspired to keep me hooked.
I spent a lot of time in great colleges, but I’m not sure I assisted a class as stimulating than this year was. Thank you all for possibly having triggered a vocation.

Here’s the reason for this post: I would like to become a professional programmer and I could use some of your wisdom to set the right expectations.

This month I sent applications to 10-15 entry-level front-end developer positions and I barely received any feedback.

I understand the current economic conjuncture is not the most favorable one for seeking a job.

However, there are some patterns in those jobs’ advertisement that bother me.
Almost every job advertisement is very specific about the technologies applicants should master. And I’m not sure to understand the rationale.

I crafted my curriculum to have a good grasp on programming basics (such as data structures, algorithm design, apps design) and I study material coming from different programming worlds. The idea behind was to become plastic enough to be onboarded in any technological stack in a matter of weeks. But those ultra-specific job advertisements make me think employers are not willing to train new workers. And it worries me. Why a good applicant should be a mirror of the technological historicity of a given company? Maybe the cost of learning new tools is way more important than what I thought?

Also, I struggle to find a good strategy in my cover letters as I find alternatively myself trying to sell Elm (because it’s the only tool I’m confident with) and begging to be trained in any Javascript framework. Have you found yourself in such a situation?

Ultimately, my goal is to find a place where I can learn as much as I can. I live frugally and I don’t need a lot of money. I’m interested in a broad range of topics such as decentralized web, (newly) DSL design. I have a scientific background in Cognitive Science, some experience as an entrepreneur, and difficulties with unjustified authority. What should I look for? What should I avoid? What is your advice?

My current technical belt is very limited: I’m able to build simple websites and apps with Elm, I know Html, a little bit of CSS (I confess I prefer to work with Elm-Ui)), very basic javascript. I understand how a RESTful API work, I know what CD/CI mean. I played with some CMS. I played with PostgreSQL. I have good UX working knowledge. And here’s my portfolio website (fr).

I apologize if you think this post is not relevant here, but I don’t know where else I could ask those questions and I’m confident in the benevolence of people around here!

Have a nice evening and stay safe!

14 Likes

Just my 2 cents from personal experience:

Are you of right age? I have been told directly* that I will not get a job as a programmer because companies want programmers in their 20s, not in their 40s. It doesn’t matter that programming has been my hobby for about 30 years.

*) Of course not by the companies hiring, as that is illegal.

p.s. I live in Finland, I don’t know if this is same everywhere.

1 Like

I’m 26 and live in France. I’m sorry to hear companies screen on such discriminatory parameters. I don’t know in Finland, but in France It is not legal. I hope you’ll find a place where you’ll be able to do the work you want…
** Edited because I didn’t pay attention to the last part of your *)

I’ve been working as a programmer for over 20 years, and this is something I find too, and it bothers me. Surely a smart person with some good all-round experience would be better than someone who just happens to have all the right buzzwords on their CV? And moving beyond the entry level - someone who has worked on some succesfull projects, regardless of language, there is so much to learn from succeeding in an IT project; failing too.

Anyway, that isn’t how the real world works. There is an IT project, it was written in Java with an Oracle database and Hibernate. The hiring manager just wants a Java/Oracle/Hibernate person who knows his stuff, doesn’t cost too much, will do what is asked of them and will fit into the team.

So Elm is really nice. It may not be the skill that lands you that first job. I recommend researching the skills being asked for and learn those to get your foot in the door.

Wishing you succesful job hunting.

4 Likes

Elm as it stands is pretty niche, so keep on building cool stuff, pay attention to the jobs channel in slack and apply, and good luck.

Besides Elm, brushing up on fundamentals and standard tech like CSS, the DOM, and JavaScript, can only improve your chances of being hired.

As you say, the market self selects for people that already know the tech of the company, specially if there are many applicants. Also it can be hard to break in at the entry level, most companies don’t want to invest in juniors or worse don’t have the appropriate support structures.

In any case: Side projects, open source and internships help to some degree, until you find someone that bets on you. It will likely not be in Elm sadly.

Otherwise, you have a great attitude, keep it up, remain positive, and always be learning. Once you break in thing become exponentially easier!

1 Like

Companies have an existing stack, and they don’t want to spend time having to train you, if they simply can buy the skills on the market place.

Training will only happen if a company switches, and you are already employed. Don’t expect anything else these days, unless you are willing to work for an organisation that expects you to stay for decades (think government, or working on Cobol on an IBM mainframe).

It’s simply what it is. So you need to provide you have experience with a specific stack. You can start an open source project scratching an itch, to demonstrate you have what it takes. Or join a project you’re passionate about and start helping out. Providing pull requests, fixing merge issues, that kind of thing.

You can also volunteer at a charity for a while and that way gain skills. It will be self-driven, training someone is a lot of hard work, and the best techies have way to much work to do that.

Hello @Yoelis :slightly_smiling_face:

Maybe you could look for education organizations which accept adults / people undergoing a career change? Some of them are rather acknowledged in France and may have contacts with companies ready to onboard less-experienced people. The ones I can think of:

You could also reach your job center to get more information and possibly financial assistance for your training…

Regarding Elm, although it’s really awesome (:heart:), from my experience it’s still not so easy to sell in France even coming from experienced developers, so maybe you should be prepared to be using more mainstream technologies for some time before getting the opportunity to actually use more interesting ones…

But you can still gain Elm experience on side-projects, make it visible somehow, reach to other Elm enthusiasts on local meetups… Networking, a well-written resume and a bit of luck can open unexpected doors.

Also, out of curiosity, are you willing to learn front-end only or full-stack development?

Cheers :wave:

Thank you all for the reality check. I think I’ve been seduced by the legend of an industry struggling to find new developers.

I couldn’t understand why those advertisements focused on tools and solutions instead of problems and expected impacts. It’s a shame because if those advertisements have been framed differently my application would have been valuable (maybe). It looks like an XY problem, a pattern people try to avoid in tech communities. But it’s clearer now, it’s a market thing and probably those advertisements are written by management!

But what stack should I pick? I chose Elm in the first place because I wanted to avoid choice paralysis. And I have the feeling that the interests of the industry are slightly different from mine. If I listen to myself I’ll jump headfirst in any exotic language such as Rust, Elixir or Haskell just to be exposed to interesting ideas, discussed trade-offs (and avoid overwhelming information).
If I count the number of advertisements on Indeed.fr I should pick Php & Laravel or ruby & ruby on rails or Javascript & React & Meteor. I have no doubt any of those choices will make me a better programmer but are they the best investment I can make for my future? Does a given stack is related to a given type of company? If so which one should I pick to achieve my goals (learning as much as possible and develop rare skills, becoming proficient in functional programming)?

There is also another pattern I noticed in job advertisements listing non-mainstream technologies (such as Clojure, Ocaml, Elixir, Rust, Haskell): it require always senior developers. It’s also a shame because my Elm skills are probably quickly transferable to any of these technologies. Where are the junior gateway to work with those technologies?

@sebn yes I would like to be knowledgable on the full-stack! Thank you for the websites, the thing is I cannot afford a training currently but it is definitely one of my goal.

Thank you again for your valuable insights and the cheering!

1 Like

Hi :slight_smile:

I can see you are starving for knowledge :stuck_out_tongue: In France, the backend is mainly PHP so I would recommand to learn Symfony or Laravel.
For the front, I would recommand some Javascript/Typescript stuff. You will hardly have another stack especially for a first job.

Drop the Clojure, Ocaml, Elixir, Rust and Haskell for now as it is a niche. And sorry, Elm as well :frowning: They are definitely interesting but as you said, it is mainly for senior or at least for experienced developper.

You can still learn from your company and collegue while learning/perfecting your knowledge in Elm. There are a lot of developper communities in the main cities. For instance, in Bordeaux, there is Okiwi. I don’t know where you are but I’m sure you can find one association that will welcome you :slight_smile:
The goal of that is to talk about jobs and language opportunities where you are. The other goal may be to start teaching Elm. Organize a coding dojo to show to the world that Elm exists. That would be awesome and will help you build your network!

For myself, I did the opposite : my job showed me Elm and now, I am in love :smiley: and then I started to think about “teaching”

Anyway. About the job, you can find one but maybe not first the stack you want. But it is still a job and you can still learn from it. A lot of jobs that starts to be really interesting requires at least 2 or 5 years of working experience, whatever it was. It’s stupid. I know but it is the truth. After this period and by getting closer to other dev, you may find you way to the stack you want :stuck_out_tongue:

Cheers, bud, and good luck :slight_smile:

4 Likes

@Nicolas, thank you for your insights! By any chance, do you know an Okiwi equivalent in Marseille? If you don’t, I’ll drop Okiwi people a line to see if I can connect the dots anyway :slightly_smiling_face:

For the backend: it’s usually hard to find Drupal developers, so that’s a good one. Drupal has a huge front-end side too, so you get that with it.

Front-end: React.

But that’s what I would pick currently as possibly high in demand. Just look at the job listings.

I think it’s not true your skills will transfer quickly to another language / toolset. I’m highly experienced, and have used Elm quite a bit for over 2 years now, but I definitely cannot yet program in Elm like I could in other languages. I.e. I have no full mastery. There’s a lot to a toolset, and a lot of culture that one needs to learn, and you learn that by doing only, i.e. slowly.

1 Like

Hi Yoelis. Unfortunately for a Front-end job, more than very basic Javascript is required. Try to make some basic sites with Vue or Svelte (so hot right now…) or React. Knowing TypeScript is even better than JavaScript. Do you have a GitHub account?
Also here is a good resource (in French) to have a better idea of what it means to be a developer: https://www.jesuisundev.com/

I was in a very similar situation and got the first elm job I applied for. Do you know this list https://github.com/jah2488/elm-companies ? You can be a very interesting applicant for some companies. But you need to find them.

2 Likes

Speak with @tibastral - he has organized Elm Europe in France for the last 3 years, and also does recruitment. He knows Elm in France well.

Nothing wrong with keeping your eyes on a goal, but still learning widely. I don’t think I could have understood/appreciated Elm as well without the years of imperative/objective experience.

If you have time side contributing to open source or side projects are great - you will both learn as well as build things that connect you with a wider range of people and opportunities.

Be patient. You can forge whatever future you want, but it takes time. I disagree with anyone saying something is not possible - it’s unlikely maybe - but that’s not the same at all.

2 Likes

Hey,

To be concise :

I always feel sad hearing that people doing elm can’t find a way to earn a living doing elm and instead have to do some JS, and it’s painful to me, because it’s not fair, regarding the technology gap elm helped us to cross.

If I wanted to earn money by doing what I love (elm), I would first find people in the need for help programming their frontend (you can find them in frontend meetups, or product, or UX), and I would explain to them that I could do that for free (because I love to program in elm), and then say to them that to continue to do that, I would need to have the monetary resource to do it in the long run or else I wouldn’t be able to feed my family. And then my time scarcity would be also the way to make my hourly rate higher.

BUT right now, I don’t want to do any JS, because I don’t want to do that to my clients. Having something that is not enough maintainable for them is something I don’t feel confortable doing to them, even if they think they need it. It’s too painful.

@berend thank you for the Drupal suggestion!
@Laurent, yes here’s my portfolio, you’ll find a GitLab link for each project I want to showcase! Thank you for the Svelte suggestion, Sapper looks promising. And I’ll read this blog.
What is your opinion on Preact? I’m seduced by its small size as I want my apps to be environment-friendly and since it’s the same API than React I’ll have a strong argument in favor of the transferability of my skills. Svelte looks amazing but I guess it is partly because it triggers my hipster fiber and It doesn’t look adopted broadly enough so it can secure me my first job.

@Erkal_Selman Woah this a great resource, many thanks! What is your company?

@supermario thank you for the cheering, it means a lot! An open-source contribution is definitely on my roadmap. However, it looks like a huge step from my perspective. Do you know projects which are welcoming to beginner contribution?

@tibastral, thank you for those ideas. Actually I offered a company to build their website in Elm for free and I had the bus factor argument as an answer. People are pretty fucked-up.
However, I think you’re right. Freelancing might be a way to convince people to give me money for the positive impact I can make on their business regardless of the nature of the technical stack I use. I just hate running after customers alone…

Also, folks, I have great news! My first job interview for a position in a lab where I might be able to use Elm is scheduled next week. I’ll keep you posted. Wish me luck :grinning:

2 Likes

When people talk to me about the bus factor, I aknowledge the fear. It’s always tough for people to imagine that all the code they have could suddenly not be used anymore, because of a bus.
Then I explain that even if nobody is doing elm anymore, I’m very confident that the way elm code is written (pure fonctions) makes it easy to port to another language. Elm being a way to discover things like math is, more than some kind of big weird machine that nobody knows how it works.

Though I’m sad because it is usually challenging to explain that to people used to oop, because they usually don’t believe that code can be as pure as in elm. But I’m also confident, because it’s a matter of time. If I got my epiphany, I’m confident other people could have their too !

Did I make myself clear ?

I understand your perspective. It’s diplomatic. That said, the bus factor as an argument is heartless and based on doubtful beliefs and expectations. And when I hear that the only thing I want is to debunk them. But I understand it’s not the most strategic move from a business perspective.

Is the bus factor really a big thing when it comes to sell Elm to prospects in your experience?
If so, can’t we do something to prevent this argument as a community? Like a mutual for disabled Elm developers allowing us to secure prospects in saying : “Don’t worry, if I die or I’m severely harmed there will be another elm developer that will carry your project at my daily rate”.

There is a whole community of experienced elm developers… in my opinion the ‘bus factor’ is just an argument of unexperienced people who don’t know what adoption means. The whole development-thing and getting market shares is about adoption. The last twenty years by itself were a huge adoption of all sort of new technologies.
Often, not the ‘best’ technologies get adopted, but the technologies which were adopted the earliest (and advertised) in a broader sense. A lot of companies fear adoption. Adoption means spending money into an uncertainty which is a risk. That is reasonable. But not the ‘bus factor’.

I would suggest you find a primary language like python (it is great for scientific projects but also for all kind of projects) and treat elm as your secondary language (that would be your full stack expertise). Also choose your company and project wisely…

1 Like

@Yoelis I’ve never used Preact. It’s a lighter and faster React with the same terrible API, so not for me :wink: