Published on

Things I would have wanted to know

Authors

Things I would have wanted to know

So, you are a fresh new developer with 4-6 months of coding experience, you want to improve, find a job and became the best of the best.

Well, let me tell you something, I've been there. Here's a list with a few topics that I believe will help you get through that process.

Be pragmatic

To be pragmatic could be translated to act acording to the situation not the theory or be practical

I am very pragmatic

Within the context landing a new great job usually comes the task of creating your portfolio. Showing the world what can you do with code and how fancy those things are.

Well yeah, portfolios are great, there are a lot of nice clean and extremelly pixel perfect porftolios that are way better than most webs on the market. The thing is, is that really the purpose?

When creating or designing your portfolio don't try to make it your main priority. Portfolios are the channel you need to attract people and companies to you.

If you main challenge is building your portofolio, which can be nice, you won't make a difference in any company's hiring process.

The important stuff is what is inside your portfolio!

Don't let CSS or any other styling framework take your time. Get out there, chose a template seems nice to you, chose a template that uses a technology you don't event know and make it reflect your personality.

You'll have time to re-design it and event buid it from the ground up once you have job and you have once less thing to worry a about.

Below you have some resources that may be useful to that quest:

Wheel is already invented

This what basically means is that do not try to make everything from the ground. Thsi point is actually closely related with te previous one.

In practice what it means is that use templates and skeletons in order to speed up your learning process.

You know how to setup a basic server, create some easy CRUD endpoints and event setup the skeleton for a frontend project. You don't want to do that everytime you want to learn something.

Genious

CodelyTV which an spanish learning platform which really nice advanced concepts explanations have huge template library on its github:

Testing? Yes, testing!

Learn how to do:

  • Unit testing
  • Integration testing
  • E2E Testing

period.

Those words may sound scary to you but hard thing about testing is the infrastructure you need to develep in order to do the testing (usually).

In order to start with testing I recommend you start with unit testing doing TDD katas of simple algorithm and simple exercices, if you don't know what a kata or TDD is go google it, I'll be rigth here.

Here you have some repos to get you started on the katas and fantastic testing world.

In case you were lazy here is what a kata and TDD is:

Katas can be language agnostic so you may use one for all the technologies you are trying to solve. There are also specific ones in case you want to use the particularaties of each language, framework, etc.

A kata is a short exercice you repeat in order get better at a particular and specific skill.

and TDD:

TDD means Test Driven Development is a programming methodology where you write your test and then the implementation and not the other way around.

When you don't test things out

Architecture, is that really for me?

Learn software architecture. Architects aren't gods, everyone should be a software architect and every company should empower they developers to feel like that.

architecture

Software architecture will make sense to you more once your codebase starts growing. The topics itself is not hard but is complex to be able to separate business logic and de-cople external form internal actions.

So, as soon as you start reading about it trying to introduce it into your daily coding reoutine the faster you'll understand how big product companies work and how to build scalable solutions that can be properly maintained.

Design patterns and god practices

In software engineering, a design pattern is a general repeatable solution to a commonly occurring problem in software design. A design pattern isn't a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations.

Knowing types general design patterns and the ones specific for your technology will help you better decide wheter to implement a solution or another and most importantly:

Decide when yo do a complex really nice clean thing and when to go for easy solution because it is not worth the trouble.

Design pattern

Here you have some resources about it:

Go and fint which design patterns are the ones that you should learn on your next big project.

Solve hard problems, not standard ones

This of course relates to your level of expertise, time and specialty. But, the thing is don't try to copy paste projects from youtube channels.

Once you know the basics, in my opinion you should only go to a youtube video in order to learn a technology, framework, whatever thing that you are going to use.

Hard problems

And if you don't know where to start at Nuwe we constantly develop hackahtons and really nice projects with companies to help you land your next big job while learning and having fun!

... and that is all.

It may be a lot but that's going to be life as a software engineer, a lot of study new things popping up every day,etc.

So go, start learning and practicing the stuff and things that will help you build your career.