DEV Community

Ivan Neto
Ivan Neto

Posted on • Edited on

What I'd like to hear from an experienced developer when I was a beginner

When we are just students, getting our first jobs, many questions come to mind:

  • What programming language should I learn?
  • Should I pursue a more scientific oriented career?
  • What are the types of jobs related to the technology I want to work on?
  • Where to work? What kind of company?
  • What has changed recently?
  • And many others...

Such questions are normal and healthy at that time. We have to make a lot of personal and professional decisions during life. In this post, I will show decisions I made, my opinion about key issues and share some interesting cases that happened to me. Things I'd like to hear when I started.

Programming Languages

This is indeed one of the most asked questions. Should I learn Java? Python? C? Ruby? JavaScript? XYZ? Should I learn all languages in the world?

Do languages matter?

Short answer: No.

Fair answer: Yes and no. They matter to learn their differences, paradigms, how they implement object orientation, design patterns, how they deal with memory and the OS. After some time, they are merely tools that you learn how to use in one day or two. You'll probably stick with one, work a bit with another, and have fun with two more. In the end, it's just a matter of choosing the right one for the appropriate job.

A couple of years ago I learned Python and a friend of mine, Java. He got a job quickly, and I didn't. I genuinely liked Python and he chose Java in order to find jobs. I could get a very good job and enjoyed it. If I had quit, it would have been difficult to find another one, though. His job wasn't that good, but he could quickly find another job. There is an inevitable trade-off.

Technologies

What I'd say about technologies is about the same, but as soon as you narrow down your knowledge to some area, there are categories we could easily fit each of the ones we'd want to learn. They represent essentially technologies that:

  1. We work with;
  2. are related to the ones we work with;
  3. complement it;
  4. we just want to play around with them;
  5. we find an opportunity to learn them.

As a web developer, I worked with Python language, Django framework as related technology, MySQL, PostgreSQL, Redis, JavaScript to complement my work. That was typically my stack. I played around with Swift because I wanted to learn iOS development and I had an outstanding opportunity with Pyramid.


Opportunities

One of the most significant things about a professional is its rarity. Technologies play a critical role regarding the transition between keeping looking for jobs and being disputed by companies.

There are many Python developers around. Not so many with experience in OpenCV and OCR related technologies. In a certain company, there was a chance to work on a modest project to detect dirty and broken walls in a room. The dev chose to work on it so now she remains as part of this group.

Whenever I have the chance to grasp something new or do things others devs refuse to, I'm very inclined to do so. The consequences of accomplishing that are often extraordinary. Once I learned a legacy system only one guy maintained and when he went on vacation I could take over. Bit by bit, I took the "legacy system maintenance" role from him so he was finally released to do more important stuff and I became essential as well. When we had to remodel it, I knew most of the company's business rules.

Another primary thing that assists the process of learning faster is code reviews. Even if you are a Jr dev, go ahead and review a Sr dev code. Just ask questions about implementation, approach or business rules. Next run the code locally and play with the changes. Inspect modules, classes, function returns. This improves considerably with your growth anywhere.

Market

Keeping an eye on what's going on with the market is also a very good step towards increasing the chances of getting more opportunities and being a rare professional. The company and the job request from you, but the market also does.

If we go from 2000's until now, it's possible to follow the evolution of the web, for instance, and the arising of many jobs related to adding rich apps, audio, and video. We saw the advent of the smartphones and we could specialize in mobile apps development. We also had a front-end boom, with many possibilities of JavaScript frameworks, chat and home automation, big data, data science, and more recently, we have progressive web apps, cryptocurrencies, and blockchain.

Additional Questions

Should I try a more scientific career?

It really depends on your background. If you already had the experience of working on a paper and submitting it to a journal or similar, that makes things easy. Or if you like data analysis, it's possible to find hybrid jobs.

What are the developers "rank"?

That's not well defined. The following posts may help:

Corporate or Startup?

You should try both and see which one is the best fit for you. I tried startup first because I could have more freedom and work in different areas I wouldn't have the opportunity to work in a big company. I talked to clients, gave presentations, gathered requirements, implemented solutions, deployed, worked even at the financial part of the company.

Should I consider a remote job?

For sure. I have been working remotely for seven years, and part of Toptal for four years, and I say it's really straightforward to find a remote job. Even non-tech companies are starting to allow remote employees, and it's working well. Some hire remote for a period of time, some have a remote and an on-site team, and some are constituted by only remote people. Even the CEO!

If you want to pursue a remote career, be sure to follow this.

Below is a list of places to find remote work:

  1. Toptal - https://www.toptal.com/#book-tested-programmers
  2. Hackhands - https://hackhands.com/
  3. Vanhack - http://www.vanhack.com/
  4. Remote OK - https://remoteok.io/
  5. Upwork - https://www.upwork.com/
  6. BairesDev - https://www.bairesdev.com/
  7. AngelList - https://angel.co/
  8. Remote.com - https://remote.com/
  9. Codementor - https://www.codementor.io/
  10. Indeed - https://www.indeed.com/jobs?q=developer&l=remote
  11. Dice - https://www.dice.com/jobs?q=&l=remote

That's it

This post has a lot of my opinion and past experiences, but I hope it helped in some way. If you disagree or would like to discuss any specific topic, just comment and I'm happy to talk. Thanks. :)

Top comments (21)

Collapse
 
jrohatiner profile image
Judith

Thanks for an AWESOME article. I have an item to share that hopefully will compliment your info.

frontendmasters.com/books/front-en... (read online)

gitbook.com/book/frontendmasters/f... (download)

Namaste!

Collapse
 
ivancrneto profile image
Ivan Neto

That's awesome! Thanks for sharing!

Collapse
 
cathodion profile image
Dustin King • Edited

We Work Remotely is another site where remote jobs can be found.

Indeed and Dice also allow you to select or enter "remote" as a location when searching.

Collapse
 
ivancrneto profile image
Ivan Neto

Thanks for the suggestions, updated post :)

Collapse
 
okolbay profile image
andrew

Do languages matter?

Short answer: No.

didn’t read further. BS

language is not only a syntax (that you can truly get within a day or two) but also a platform, stl, 3rd party libs and frameworks, and what is the most important - community, vision. you have to pick carefully, otherwise if you might opt for a low-hanging php fruit and lack Kafka or gRPC support, and eventually miss out on modern technologies like real-time data stream processing. Do languages matter? Hell yes they do!

Collapse
 
colinmtech profile image
Colin Morgan • Edited

didn’t read further. BS

Just because you don't agree? How will you ever learn other points of views and ideas if you never read past what you don't agree with?

Collapse
 
okolbay profile image
andrew

what caught my eye was the pitch about languages. so I paid some attention to that. the rest of the post might be legit or might be not, I dont care much ) and bs is not because I just disagree, I’ve been there before )

Thread Thread
 
jibinp profile image
Jibin Philipose • Edited

Did you read the next line about the fair answer yes and no, I do agree that an expert should be bound to some particular technologies but nowdays everyone seems to be going after the most adopted languages without taking consideration of its shortcomings. This community is not a rogue or rude community if you disagree with something kindly say your opinion no need to be harsh on other people's opinions please don't think this community is BS

Collapse
 
ivancrneto profile image
Ivan Neto

Hi Andrew,

The context of the "No" was for the questions beginners usually do to themselves: "Should I learn all languages? Should I learn X, Y, Z? Which language should I learn?" That doesn't really matter.

But of course, to solve a problem you have to pick the right one and do that carefully. I agree with you and I say that right after. It's a pity you didn't read further.

Cheers.

Collapse
 
bousquetn profile image
Nicolas Bousquet

Well I do not really agree there because one is quite likely to be labelled by the language and technologies.

You have to be sure to pick something that has something you value: interresting, easy to find a job or well paid. If you are to choose randomly, that's a bit of a shame.

Also, you'll need years to be really effective on a technology stack, that is be a senior dev that does the work 10 time faster than a beginer and be recognized at such. Sure you can try many languages and that nice, but you'll not be recognized as expert in 10 different languages. And it is only as expert you'll be offered the most interresting positions.

Collapse
 
papaponmx profile image
Jaime Rios • Edited

As a self-taught developer. Most of the big companies out there are not a place for me to thrive.

I'd also tell my younger self to beware that not all startups are created equal.

There is one kind funding and bad planing,

There is a second kind that don't have enough funding and try to survive from month to month.

I've also found a third kind with enough funding and good planning. I'm joining one of those this week.

Collapse
 
ivancrneto profile image
Ivan Neto

Best of luck, Jaime!
Indeed this startup topic deserves to grow a bit or even another post.
There is a lot to say.

Collapse
 
dd_petty profile image
Dionne Petty

I absolutely love the corporate vs start-up advice and remote resources. This is a great article for beginners like me. I find the most small business/agencies tend to work on WordPress sites.

Collapse
 
jess profile image
Jess Lee

Wow, that was great and concise advice. Loved the remote resources too.

Collapse
 
ishan_kanade profile image
Ishan kanade

Language doesn't matter as long as the one you are using is comfortable for you. Personally I started of with Ruby which was easy to read and write and the concepts in it are not too hard to grasp. But I feel where most early dev's lack is they get into language comfort and avoid exploring new things.

Something like Go or Rust after you've picked up Ruby/JavaScript/Python (one of them) is a good way to diversify skill set.

While considering remote jobs I found that using a job site where there are job posts with multiple skills or domains, makes it harder to get the job. Because there are so many people there who apply for it and they may or may not have the full skill set but that sure as hell puts my resume in the back of the pill. I'd suggest any new remote job seeker, to use niche job boards like Ruby On Remote or Vuejobs.com to improve their odds of getting an interview.

Collapse
 
jess profile image
Jess Lee

And a well deserved shoutout at @lpasqualis !

Collapse
 
ivancrneto profile image
Ivan Neto • Edited

Yeah, let me give him credit! [updated: oh, you did it already, thanks!]

Collapse
 
shinyuy profile image
Shinyuy Marcel

Great post, very informative.

Collapse
 
ivancrneto profile image
Ivan Neto

I appreciate!

Collapse
 
ivancrneto profile image
Ivan Neto

I hope I could help you :)
Gostaria de ver mais brasileiros postando aqui (I'd like to see more Brazilians posting here)
Maybe sharing this would help a bit, thanks!