DEV Community

Chantae P.
Chantae P.

Posted on

Algorithms vs Building projects🤔

I need some advice...
In June, I plan on applying for FrontEnd-Devoloper jobs. Right now I am learning Basic Algorithm Scripting on Freecodecamp which is kicking my butt right now. It takes me more than three hours to work on one problem on my own. Eventually, I would give up and have to look at the given solutions.

I'd much rather focus more on building projects but I am worried that I will be asked to solve coding problems that uses algorithms during an interview.

My question is, since I want to work as a frontend developer, should I focus 100% on building front end projects? Or, should I focus 50% on building projects and 50% algorithms? Which is what I am doing right now.

P.S. I know I will not know everything by June. But I need to set a time frame for me to start applying. I honestly feel that I can learn more while working on the job with the right team. I just want to get the basics out of the way and start job prepping from now.

Top comments (31)

Collapse
 
crowdozer profile image
crowdozer • Edited

It really depends on the position and the scale of the company you apply to. A small company that wants you to build them a front end for a private api probably doesn't care about what data-sci their junior dev knows, ya know?

But maybe a larger company with a web-app that handles tons of data, might care a lot more about an efficient & performant app which demands some knowledge of data-sci.

If you're unsure, I would just focus on whichever you are more passionate about 👍

Collapse
 
taepal467 profile image
Chantae P.

Yeah I actually prefer building projects. I have more fun doing that than learning about algorithms or complex code.

Collapse
 
gass profile image
Gass • Edited

Learning is something you will always be doing as a programmer. Many forget about having fun. This path is not for everyone, it is for those who really like it and enjoy it. That said, I think that you are feeling overwhelmed and that is normal at your stage, the reality is that tech is continously evolving and getting more complex, and every year there is more to learn than the previews one. My suggestion is to not put so much pressure in your timelines, this is something that is going to take time, you need to know that reality. Don't fall into the trap of wishful thinking.

The pressure on your timelines will prevent you from building a strong foundation. Is very important to learn very well A to go to B to go to C and so on.. But that takes time. At the same time if this is your thing it can be an enjoyable experience.

Don't focus to much on algorithms. Yes, do one of them from time to time. I recommend been active on Stack Overflow, studying fundamentals of HTML, CSS and when you feel strong with those, study the fundamentals of JS and start using frameworks. Also play around with them and YES build stuff.

I wrote a fun coding JS session here in dev.to.. Explained in detail, I would say is for begginers.. check it dev.to/gass/fun-coding-start-multi...

Collapse
 
taepal467 profile image
Chantae P.

Yes you are absolutely right I do kind of feel overwhelmed because there is a whole lot to learn. Thats why I created this post to get a better understanding of what it is I should be focusing more on. And thankfully, the majority of the answers says to work on building projects and getting the fundamentals of HTML and CSS. So that is what I will do.

And I actually do use GitHub. I have built a few projects. The only thing I need to learn more about is using git.

Collapse
 
gass profile image
Gass • Edited

Never forget to have fun with what you are learning, for me that is the key that keeps me going after years of coding.

Try to use as much git while your developing projects. Also, projects don't need to be massive, they can just be a component, a small npm package, a one page static website with some JS features like this one I built about a year ago --> gass-git.github.io/minimis/ and you can find the repo here --> github.com/gass-git/minimis if you want to see the code.

You are a smart person I can see that, you'll do great.

Thread Thread
 
taepal467 profile image
Chantae P.

Thank you so much ☺️ and WOW! I like your web page. The projects I've been building aren't massive at all. I build projects on frontendmentor.io. I'm actually learning more that way even though it's a bit challenging sometimes.

Collapse
 
taepal467 profile image
Chantae P.

Learning HTML,CSS and JavaScript to learn about frontend web development. Eventually I would like to learn other technologies like mobile development and python. I just want to get my foot in the door and becoming a web developer is a bit "easier".

 
taepal467 profile image
Chantae P.

Wow! Now this is very helpful. I'll definitely look into learning more about Wordpress. And that is exactly why I can't wait to start working. I think learning on the job WHILE getting paid is a win-win situation. Doesn't matter what job I start with. As long as someone is willing to give me a chance to learn and grow, I'll be happy.

Collapse
 
cristia45971976 profile image
Cristiano

I've spent quite a lot time on solving problems, not only interview problems but also competitive programming problems (which is much harder). The result is I can easily pass coding challenges in most of companies and secure the position but later I feel myself far behind my colleagues in the actual job and the thing is I've never used any of my problem solving skills in the job :))). My suggestion is focusing on building project and find a company that values your skills.

Collapse
 
paratron profile image
Christian Engel • Edited

The most valuable things to know as a frontend engineer is not writing algorithms.

Focus on:

  • Creating SEO friendly pages with semantic markup
  • Create performant pages (load fast, no layout shifts, no heavy JS load)
  • Maintain accessibility (again, semantic markup - no div-itis)

Those three points really inter-depend on eachother. To have an accessible and fast page gives you a SEO boost as well as good and clean markup. And having a performant website both user and SEO wise makes it much more valuable for your client.

So I personally would recommend working on "real website projects", not algorithms. But as others noted, it highly depends on where you want to apply.

Collapse
 
taepal467 profile image
Chantae P.

Thank you for your input. I will definitely focus more on building projects. Right now I'm practicing by completing the frontendmentor challenges. I want to learn enough so that way, I can create a decent portfolio.

Collapse
 
govindbisen profile image
govindbisen

spend only one hour maximum on a problem, then check solution. no matter what people say, our imagination is not beyond this unverse, so whatever you see creative has already been produced by nature or somebody else.
just try for 1 hour check solution after 100 problems, 1 may repeat, then you can enjoy, that you make it your own, after 1000 problems, you may start getting solution from what you have learn't from these many problems.
learn basics of all then start building projects.
first learn javascript , then html then css then react js. learning javascript is not huge chalenge, learn most required javascript for react and then you are good to go.

Collapse
 
taepal467 profile image
Chantae P.

Yeah I think I'll do that. I'll work on one problem a day and focus most of my time learning JavaScript and practice my CSS skills more. I am comfortable using HTML though.

Collapse
 
govindbisen profile image
govindbisen

start with javascript. learn only important concept good enough for reactjs.
then css little bit,rest you can learn while creating many project.

Thread Thread
 
taepal467 profile image
Chantae P.

That is very true. I am learning more by building actual projects.

Collapse
 
animesh1819 profile image
Animesh1819

I think, build logic is good for you life and dessision, but for a career build a real project is good

Collapse
 
taepal467 profile image
Chantae P.

yeah that makes sense.

Collapse
 
tandrieu profile image
Thibaut Andrieu • Edited

I once worked with a front-end team that had to implement some kind of google drive, so basically displaying a filesystem. We noticed that we couldn't handle more than 7 level of directory.

Instead of implementing a recursive tree structure, "someone" had implemented a list< list< list< list< list< list< list< file>>>>>>>...

So don't worry, you will never ever had to implement a bubble sort algorithm in your career. But for me, minimum skills in datastructure, algorithm and splitting problems is part of basic knowledge any developper should have, or should acquire.

Collapse
 
taepal467 profile image
Chantae P.

I completely understand and I know algorithms are used to help you learn problem solving skills. I'll still work on algorithms but my main focus right now is to build projects.

Collapse
 
tandrieu profile image
Thibaut Andrieu

"I can learn more while working on the job with the right team". Well, that's the good mindset, that's what most companies are looking for 😉
In your case, I think you can focus on projects. You can justify you don't have an engineering background (sorry if I'm wrong, your are saying you came from retail in your profile 😊) and so, algorithmique is not your core competency but that's a skill you can learn on the job. Saying "I don't know" in a job interview is a proof of courage and is much better than saying bullshits.

Thread Thread
 
taepal467 profile image
Chantae P.

Oh don't worry. You're right about be not having a background in engineering. And yeah I'll definitely practice my front-end skills by building projects.

 
taepal467 profile image
Chantae P.

Okay cool. I'll look into that as well.

 
taepal467 profile image
Chantae P.

Thats good you found something you enjoy doing. So far I'm enjoying learning web development even though I face some challenges.

Is PM short for project manager ?

Collapse
 
jeremyf profile image
Jeremy Friesen

What attracts you to the front-end projects? And what specifically do you mean by front-end projects?

Collapse
 
taepal467 profile image
Chantae P.

What I mean by front end projects are projects that mostly consist of using HTML, CSS JavaScript and a framework. I actually like to build projects but learning Javascript is making things a bit harder for me.

Collapse
 
jeremyf profile image
Jeremy Friesen

Javascript complicates the playing field. HTML and CSS can get you a lot of things. And in days of yore, you would click a link to get a whole new HTML page. (Or submit a form to get a new HTML page).

But Javascript comes in and introduces changes to the page. In fact, some folks render the HTML fully with Javascript.

How I like to tackle the problem is to think about what is entire HTML document "at rest" (when I first come to the page). Then, when I do something, what is the new state of the HTML document. The javascript is responsible for negotiating that change.

I've also found if you think HTML and CSS first, it makes cheaper prototypes and implementations. But that's me and where I've come from in my learning.

I just stumbled upon some posts regarding web components. The following post was very illuminating, and puts javascript in the role of progressive enhancement (e.g. add behavior if javascript is enabled).

Web Components as Progressive Enhancement - Cloud Four

By wrapping and enhancing HTML elements, we can provide a solid baseline experience, with progressive enhancement as the cherry on top.

favicon cloudfour.com
Collapse
 
curiousdev profile image
CuriousDev

I cannot tell you what in the interview will be used, but here my recommendation:
Do not worry too much, usually in the projects (my experience) it will not be too much about complicated "coding challenges". It will be more about building complex systems in a good way.
But you still should learn and practice a lot something like coding problems, because it will still teach you a lot about solving problems with programming. The experience which you gather will be worth it, just do not always try to limit your learning to topics, which seem to be necessary and actually used.
Keep doing, if this is the path of your choice!

Collapse
 
taepal467 profile image
Chantae P.

What do you mean by building complex systems? Sounds hard already.

Collapse
 
curiousdev profile image
CuriousDev

When you are trying to build a product, like a Web Application, it is possible, that most parts itselves are just simple functions etc., but the more your projects grows and more parts have to be connected together, the more complex it becomes.
This is different from solving complex problems, which can be solved with just a few lines of code.

Thread Thread
 
taepal467 profile image
Chantae P.

okay, I get it now. Thank you

Collapse
 
tonyknibbmakarahealth profile image
TonyTheTonyToneTone

I always ask the mechanic to parallel park.

If they can't manage that, they have no business playing with my nuts.