DEV Community

Cover image for I have no idea what I'm doing, but here Goes #0

I have no idea what I'm doing, but here Goes #0

Jaimie Carter on June 18, 2019

To get this out of the way; I have no idea what I am doing, but I'm going to make an app. Yeah, I'm that guy. So I thought, this is a great place...
Collapse
 
flrnd profile image
Florian Rand

Hey Jaimie glad you continue this adventure. If you want to learn a database, learn a relational db first. And I would advice learning about posgresql directly.

Out of curiosity, Can I ask why did you drop the idea of firebase and similar options?

Anyway, keep going! Cheers.

Collapse
 
jamonjamon profile image
Jaimie Carter

Hey Florian. I'm learni g Mongo because it seems to 'be the thing to do', though I intend to deploy on Firebase. I'm hoping my data structures will work the same in deployment.

  1. Can Node use SQL?
  2. I can't figure out how to build a development environment with Firebase... Though, I haven't had a good look yet.
Collapse
 
thefern profile image
Fernando B 🚀

Hi Jaimie both sql, and firebase have npm packages and are supported by node. Imo it doesn't matter what database you choose, if you want to go serverless then firebase would be a good choice to avoid server maintenance, costs, etc. If you want full control of your database then mongo, or sql or whatever you want to install on your server would also be another choice.

I am in the process of designing an app with firebase so I'd give you my 2 cents. Documentation, and examples are great. And lots of youtube tutorials as well. The nice thing about firebase is that you have a nice documented API, and it separates services database, storage, and auth. On top of that you also have cloud functions. One thing to keep in mind is read/writes limit and costs. Tbh the free spark plan is quite generous. Firebase pricing

If you are planning on using mongo as a local testing make a super class, and then you can subclass actual database implementation separated like that. And with that firebase also supports a simulator local environment for local testing, but cloud testing is not too bad for small apps.

Thread Thread
 
jamonjamon profile image
Jaimie Carter

Thanks Fernando, I was thinking of using Mongo for the dev environment. Thanks for the tip with super class and sub class. I'll look that up first thing in the morning. I really like the look of firebase to get an idea what your concept will turn out like, so I'm super keen to get across at least a bit of what it has to offer.

Thread Thread
 
thefern profile image
Fernando B 🚀

No worries, yeah the idea with a super or even an abstract class is that you keep all the database methods in one place.

Examples:

  • FetchUser
  • WriteData
  • ReadData
  • Etc

Of course these methods would be based on your app, but then on the subclass implementation you can actually focus on mongo in one class, and firebase on another. And somewhere on a configuration file you can easily switch between the two.

Thread Thread
 
jamonjamon profile image
Jaimie Carter

Excellent!! Thanks for this.

Collapse
 
flrnd profile image
Florian Rand

I'm making things more complicated for you instead of helping. Forget about everything I said. I'll try to come back to this tomorrow (it's a bit late here).

Collapse
 
dbjdbj profile image
DBJDBJ

I was/am "doing" javascript (more or less) commercialy since 1999 (gasp!) but my core "skills" (whatever that means) are C++, Architecture, CTO ..

Since approx 2010, I was just more or less watching what is going on with JS explosion. And I have to say I consider my self really lucky I was not involved with proliferation of "frameworks" and "libraries". Full disclosure: I have official "thank you" from jQuery core team. A big gasp! :)

FFWD to 2019 Q2. I think I can see "coming back to senses" underground movement, inside this "front end bubble". (W3C stayed immune to the hype)

If I would have time to do any kind of a front end myself, I would not hesitate to use three ingredients only:

HTML, CSS and JavaScript.

For app logic and back end, use free web services (example: programmableweb.com/)

Ah, and yes, before all: Make sure you design you app before you code it.

ps: this is article from last year, I do not know how far have you got ...

Good luck...

Collapse
 
jamonjamon profile image
Jaimie Carter

You know, coming into this pretty much cold, I kind of thought I need to just stick to the core of what is there. As you said front end - HTML CSS and JavaScript. The accompanying shiny things, while great, perhaps would confuse what I need to know and even more importantly provide an unnecessarily complex solution where a simple one could have been built. Again - I have no idea what I'm talking about here. Just a hunch.

I'm getting there with the planning of what I want to do. As I progress, the plan changes and morphs (wait, I'm supposed to say 'pivot' aren't I? I know o souldn't be so irreverent, but hey, I'm Australian!! ) As the idea is actually defined at a technical level. It is tres exciting!

Oh and the JQuery thing. That's cool. Not that I'm envious. Of course.

So, can I say I know a guy that built the JQuery thing? Promise I won't make it bigger than it is (an Australian would never do that)

Collapse
 
dbjdbj profile image
DBJDBJ • Edited

I am not "a guy that built the jQuery thing", that is John (Resig) :)

Those where the days when most of what is enjoyed today in every JS kindergarten, had to be built. That is Sizzle (sizzlejs.com/) the core selector engine. To be honest, the jquery forum doscussions have been so heated, I have not even noticed I am contributing to it. But it seems I was.

Today, I can see a lot of talent in (for examle) React. But I do not understand two things:

First, there is no single diagram, nothing, on the subject of architecture or design. That is a wider problem though.

Second, I do not understand how would I lead the team where CSS and JS roles are clearly defined and separated, while basing a code on (something like) React? It is no accident FaceBook pages are anything but "beautiful". Or even "visualy pleasing" like (for example) Bootstrap CSS, can do. CSS and JS projects, need to be able to work in parallel. And independently as much as possible.

But, as I said there is a lot of talent over there. Lady leader of React team goes on stage (2018,Aug) and says: "classes are bad". Just like that. After many years have been lost in figting against introducing them in JS. And voila, all of a sudden fully functional React component is not a class any more.

The point is: why should we care?

We perhaps should and could, if forced to make a decision. Until then enjoy the HTML+CSS+JS combo ..

Thread Thread
 
jamonjamon profile image
Jaimie Carter

I was being very cheeky about the JQuery thing. Now that you mention it, there is no diagram or even a written explanation of how there frameworks or libraries are built. In the broadcast world very old facilities have incomplete or inaccurate drawings indicating what goes where, and that is the end of the world when it come time to commission a large piece of infrastructure. Why on earth isn't there diagrams of what functions etc goes where? Is it a case of restricting knowledge? Surely that can't be the case, if people want their framework used. Also there seems to be no standard protocol when it comes to the instructions that do exist. By that I mean, there seems to be no thought gone into who reads these instructions: as long as the author understands, it's fine. And there's no structure to writing docs other than, getting started, doc's etc. That's it. As formal as it gets. Maybe this is an area that needs to be addressed...

Collapse
 
peterwitham profile image
Peter Witham

Welcome to the party Jaimie,

I think you have solved one of the biggest problems already with getting started...you know what you want to make! The rest is all just details.

From reading the post I think it sounds like you know the direction you want to try and a problem to solve, now you just have to fill in the blanks and keep the momentum. Yes it can be hard to find the time, but that's the problem I think we all face at any level with any project, even when we are paid for this software development thing :)

I look forward to reading on your progress and I can't think of a better community to share it with for support and motivation.

Collapse
 
jamonjamon profile image
Jaimie Carter

Thanks Peter. It'll be slow going with work, and life getting in the way, but I will get there. I finish the plan today, and start writing code on Monday.. how excitement!

Collapse
 
jamonjamon profile image
Jaimie Carter

Hey Neil,
I'm glad it's not just me that's overwhelmed about setting up a project. I know with what I am currently doing for a living, you make your life a whole lot easier if you can define what goes where early on. I understand agile is the thing, but you're asking for a kicking if you don't try and define what you need and how it will grow (as best you can) right up front. And then build ALL of it. The moment complexity starts increasing exponentially, you need to be ready (as best you can). I guess it's always going to be a trade off. I'm getting the feeling, the further i delve, what I actually want is an API, so perhaps Node is a good starting point. We shall see. Thanks for the advice, I appreciate it.

Collapse
 
seefer007 profile image
Darren Evans

I'm frankly relieved to discover others in their 50's transitioning into app development. I'm 54 and finding learning in isolation rather rubbish. I'm in Manchester, UK and have learned of Northcoders.com in my home town and will likely sign up soon to accelerate my enthusiast-level coding knowledge. Good luck with your journey.

Collapse
 
jamonjamon profile image
Jaimie Carter

Hey Darren,
Yeah it was/is a bit rubbish being isolated. The good thing about not being young is now I couldn't care less what people think of me. Happy to be the crazy old guy. So I go to meetups - they all think I'm a founder, so it's hilarious! Get out there, and the people on this site, for the short time I've been on it, are amazing. I'm always around for a chat, too.

Collapse
 
nestedsoftware profile image
Nested Software • Edited

Best of luck to you! If your primary goal is to tinker and learn new things, then of course you should use whatever you're curious about. But if your primary objective is to build a working app and get it to a point where you can test out if the market is biting, then I'd suggest using a stack you're already familiar with. That will help you iterate as quickly as possible, and you'll be more focussed on building features rather than debugging. If your technology choice limits you in some way down the line, I'd proffer that it probably means your app is already successful enough for that to be a good problem to have. I'd wager the truth of the matter is that any well-established technology will have its fair share of good and bad in the end though.

Collapse
 
jamonjamon profile image
Jaimie Carter

This is a very good point. TBH, I think having an app big enough to be a problem is akin to having a hit record in the 80s - possible, but unlikely... . Sigh.

Collapse
 
jscooksey profile image
Justin Cooksey

Interesting blog and well written, I'm keen to see what you do next.
I'm in kind of the same position, as in I'd love to do more coding work. I work in IT already so I do get to code somewhat for work,andnim not looking to change jobs in the near future se3ing as I'm with a good workplace at present.
My issue is finding (or coming up with) projects to sink my teeth in to. Glad you have one.

Collapse
 
jamonjamon profile image
Jaimie Carter

Thanks Justin. Maybe finding a project is as easy as identifying what annoys you, and fixing it??? Everything annoys me, so there's lots to choose from!.

Collapse
 
fultonbrowne profile image
Fulton Browne

Try out android I love it you can get started here

Collapse
 
jamonjamon profile image
Jaimie Carter

Yeah, I saw this very early on in this journey. Something I want to get to, after all this...