DEV Community

Tori Pugh
Tori Pugh

Posted on • Edited on

When to Call it Quits on a Project: Stepping Back and Taking a Break

I was trying to make a Pomodoro timer for the Scotch.io Challenge #6 using a framework I had just started learning, Angular. It was going pretty well at first. I had replicated the desired design look. I'd setup the components and just needed to create the javascript to make the timer actually countdown from a given time. This is where it took a sharp downturn.

Problem Strikes

I just couldn't get the timer to countdown no matter what I tried, I felt I had a good game plan. I thought I knew the steps to make this work and it would be no problem. It did not work out that way at all. I spent a few hours trying to lookup any examples of people who'd done something similar, to no avail. None of the examples where using the setup I had of using Angular CLI. They were all using a setup that relied on $scope and I didn't know anything about that or how it related to my setup.

I'm a pretty determined person so I spent a good part of my night trying to break this "problem hump". Thinking if I just pushed enough everything would click into place and it would all make sense. That's usually how it works for me, I do research and trial & error and then things works. I kind of figure out what I needed to do and then it's something I've learned.

Calling it Quits

It was getting close to 3am. I was super tired and very angry, at myself. I wanted so badly to do this, I thought that I'm better than this I can make it work. That wasn't actually fair or true. It had nothing to do with my abilities in the sense of I'm a failure but more that I'm really new at this. Why should I be expected to know everything about a framework I just started using not even a month ago. Once I realized that I thought it was silly to push myself to learn everything about Angular in the wee hours of the morning.

I didn't want to but I put this project, making a Pomodoro Timer with Angular, on the backburner. I made it in Vue and don't regret that. That's a framework I've had a few more months experience with and I feel really comfortable in. Took about two days but I got it working and fleshed it out into a full functional Pomodoro Timer.

End Result

I would have never gotten that far if I was too upset about my Angular project and called it quits. I know when I have more experience in using Angular and have a better handle of how it works I will come back and finish that project. There is not doubt in my mind.

Sometimes you need to give up and come back later. If you don't know why it's not working or you feel your missing something, step back and get a different perspective. There is no shame in not having enough experience. Just don't give up and you can always come back later.

Top comments (11)

Collapse
 
hrmny profile image
Leah

Just a nitpick, neither vue nor angular are languages, they're libraries/frameworks

Collapse
 
teekatwo profile image
Tori Pugh • Edited

Hmmm, then what would you call the specialized code needed to be used for them. In the case of Vue things like the v-if="" or @click="" or for Angular (click)="" or @Output="". I feel that is a language but if there is another term for using the specialized terminology inside a framework let me know and I'll change the term. It seemed to be the best fit to describe the situation.

Collapse
 
alainvanhout profile image
Alain Van Hout

That's the library/framework API that you are talking about (API also meant something else before it referred to e.g. a REST API).

Thread Thread
 
teekatwo profile image
Tori Pugh

So it's just the API or API code? Just feels weird to say that about syntax. It might be because so many think of something else with the term, it seems out of place.

Thread Thread
 
alainvanhout profile image
Alain Van Hout

Yes, that'll also depend on who you're talking to/with. Do note though, that you'll not come across many people who'd refer to it as a 'language' rather than a library or framework, since 'language' has a pretty widespread specific meaning in IT.

Thread Thread
 
alainvanhout profile image
Alain Van Hout

The short answer here is: it's just "the library API" or "the library's API'.

Something to keep in mind in that the 'i' in API stands for interface. So the code you write is meant to (i.e. is your way to) interface with the library or framework. Code is just statements, written in whatever language. So saying 'API code' is equivalent to saying 'looping code', while just calling it 'a loop' works just fine.

I think you'd be surprised how many people do use the term 'API' in the sense that I'm talking about, rather than only in the http/REST/SOAP sense. The following might offer some help: quora.com/What-is-the-difference-b.... Most notably: "An API is an interface for other programs to interact with your program or library without having direct access."

To give a very quick but telling example, have a look at api.jquery.com/ and it's subpages. The 'api' there has nothing whatsoever to do with ajax calls to json http APIs, but in fact refers to the library's (or libraries') surface area, with which you can interact and make use of.

Thread Thread
 
k2t0f12d profile image
Bryan Baldwin • Edited

This isn't different then writing a C library with library specific macros, enums, and typedefs. The code you write with it could look very different, but it is still C.

Collapse
 
hrmny profile image
Leah

it's just an extension of html

I mean you could call it a DSL, but it's really just some extra properties

Collapse
 
straleb profile image
Strahinja Babić

I remember when i started with FreeCodeCamp program so i came to the projects that were JavaScript required.
At the beginning i was like O.O okayy, after some time i tried to work on them , tried to use the knowledge i had, but wasnt that enough so i thought, lets call it quits now and learn some more.
So later on i came back to those projects and i was clear on what to do and what approach to have.

Same with the projects after that, if it isnt working, take a break, commit yourself to something else,later it will come to you how to finish it, it will definetly work :)

Collapse
 
dceddia profile image
Dave Ceddia

I think your takeaway of "come back later when I have more experience" is great. I've had to do that many many times in my career, where I just could not make sense of a thing until I walked away, let it sink in for [hours|days|weeks] and then came back to it.

Redux was a recent example of this, for me. React made sense to me quickly, but Redux took a little while to sink in, and it took me a few failed attempts before I really figured it out. It's also happened with the Elixir language: I think it's cool, I can do small things with it, but I haven't grasped how to do the bigger stuff yet.

All that said, part of the problem IMO is Angular. Angular is complex, some would say overly so. It's not surprising at all that you ran into some weird hard-to-solve corner case, and that Vue was easier to pick up. I'm not a huge fan of it myself. Anyway, I guess I'm saying: if the thing you're trying to learn makes no sense, it might not be you ;)

Collapse
 
k2t0f12d profile image
Bryan Baldwin

When isn't a good time to quit Javascript?