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 to write about the app's journey and share my stupid mistakes, so here's the first blog entry... or blog number 0. See! I made it zero, not 1! OK, settle down. I thought it was funny.
AAANNNyway, I have this problem that is annoying me. I'm currently working in broadcast, and my work patterns are all over the place. During the summer months (October to April - yes that is summer here -keep up, read my bio) I get loads of work. The days are long: I'll get to the airport at 7am, fly to venue, work, and I'm at the hotel at 11pm. Then I'm (usually) up at 5am for a 6am flight home the next morning and onsite at a home venue for a 10am start, and on it goes. I'm busy. Proper busy. It's high stakes, high pressure work, so we're all exhausted after every job let alone the cumulative it has. Stay with me, I'm getting to the point. Promise.
So this is the source of the problem. The problem? While I am working, I don't organise future work because, well, exhaustion. I know, break out the violins. You don't care. Nobody cares.... (sobs in corner in fetal position).
So I got to thinking (groan... this always gets me in trouble). Don't think, kids. It's overrated. Why don't I 'just' automate this process? How hard can it be? There are a lot of platforms out there like Deputy and the like, but they're all about the employer, and not ME. IT NEEDS TO BE ALL ABOUT MMMEEEEEEEE. So what an excellent place to start!
SO. Which platform? I built my first app (patch.team) in PHP. I gotta say, I like PHP, but is that a bit Truman Show-esque? Well, campers, we're about to find out. Unless anyone can talk me out of this; I'm going for the much hyped Node and MongoDB. I'm in the middle of my Lynda course, and it's already annoying me. I just want to start, but first I need to install what dependency? Then I need to call it? Really? How do I do that again? Do I do that? What? Why is the syntax different FOR EVERYTHING? It's making a cranky old man even crankier. But that's OK. I like it!
Until the next edition of "I have no idea what I am doing, but here Goes", happy coding!
Top comments (23)
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.
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.
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.
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.
No worries, yeah the idea with a super or even an abstract class is that you keep all the database methods in one place.
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.
Excellent!! Thanks for this.
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).
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:
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 ...
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)
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 ..
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...
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.
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!
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.
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.
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.
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.
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.
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.
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!.
Try out android I love it you can get started here
Yeah, I saw this very early on in this journey. Something I want to get to, after all this...