Spanulate is going digital

Dear current or future spanulators,

Yeah, yeah okay so the internet is digital, whatever! BUT, Spanulate is about to evolve! Starting Monday Oct. 13, 2014 Spanulate.com will be the home of The Spanulator podcast!

I am super excited about this new project! I will still be posting form time to time in traditionally blog format to spanulate.com. But the primary format will be changing over to a bi-weekly podcast!

Hope you enjoy!

Coreyd303 aka The Spanulator

Building something by yourself

As a newbie, up and comer, beginner, junior dev what ever there is a truth, at least in my experience, that you don’t often get to build something all by yourself!  I think that this is really unfortunate. Every beginner should take on a challenging personal software project all by themselves, and see it through to its completion. Pick 2-3 big ideas around software engineering and design and build an app that includes them. Make your app personal, something that you are passionate about so that its a) fun and b) not right without the features that you want it to have. When you do this, there are a couple of things that you should avoid and a couple of things you should make sure happen.

Avoid

  • Worrying about best practices (this is play time, not by the book time)
    • TDD, User stories, etc.
  • Down grading your ideas in translation to software (hold yourself to a high standard and strive for it)
  • Letting other shit get in the way (a regular commitment to this work time, and its completion are critical)

Make Happen

  • Be sure that the project pushes you beyond your current limits
    • What haven’t you been able to do yet, or what are you kind of interested in?
    • What have you always thought was too hard, or maybe just thought would be uninteresting, see if you can do that
  • Make your software live, it adds an extra element of rigor

Every beginner should take on a challenging personal software project all by themselves, and see it through to its completion.

Hopefully the reasoning behind this is apparent, but if not . . . 

I am currently do this, for me it isn’t a side project, okay, but it is on my own. And while I entered this project with fear, trepidation, and doubt, where I am at currently is pretty awesome. I am proving to myself that not only can I do this, but also that I like doing this. Be an individual project introduces some interesting things:

  • I don’t have any accountability to anyone but myself

This is both a plus and a minus. Its nice because the only pressures are pressures that I create, I don’t feel like I am letting others down, and it lowers the incidence of me trying to compare myself to others. Thinking I’m the low man on the team or feeling like am being held back (both of which are detrimental). It’s also nice because I get to make all of the choices, I don’t have to fight to be heard, or feel like my ideas or my direction isn’t being recognized. And I have no one to blame but me when shit gets messed up (I personally prefer this, I find it empowering). Its can be negative however because I tend to let myself slide. In my last project I had many many late nights, staying up to try to add one more feature or fix one last bug, this project, I am going to the gym after my day, then cooking dinner, enjoying some TV and getting to bed at a reasonable time. Am I slacking, no I don’t think so because I am making daily progress, could I push myself a bit harder, sure, it’s an interesting balance to achieve on your own.

  • I am forced to stay in the trenches longer and figure shit out

People tend to spend less time against a wall when they have an equal escape. What I mean by that is that when we are faced with a challenge as a team, we take fewer risks, thats part of what teamwork is, its about sharing the risk. So when I or someone else runs into a hard problem, they may be more inclined to try for a shorter duration if they know they have a teammate to “pass the ball too”. When you’re on your own, you are the only one who can field that pitch, so you tend to stay there longer, and as a result gain more. There is a down side here too, in that you don’t have anyone but you to pull you back from the edge of the rabbit hole, but as long as you can manage that you really have some opportunity here. In my current project I was frustrated for a while because I wasn’t writing much ruby logic, then I stopped and looked at what I had been doing. I have been writing Java Script, like a lot of it! Which is awesome, because I haven’t really had any training in JS and I have really wanted to learn more, and JS is tricky, and I have written some awesome features that I am proud of with it! Which brings me to my last point . . .

  • I get to take all of the credit

This is really important, at least for me. I have a habit of down playing my contribution to things. I sort of gloss over my own efforts and abilities. In this project I can’t do that. Its all me, this is really good because in this I get to really look at what I can do, and take credit for every part; good and bad. Does this boost my confidence? Hell yes it does! And I get to take pride in that; I’m not half bad at this whole software engineering thing. Does this highlight my weakness? Yep, sure does! Which is also awesome, because I am finding that my weaknesses are not where I thought they were! Which is really important as I move forward.

In any case, taking the time to do this, to make something person, that stretches you is an exercise that if done right could make the difference between a hobby dev and a professional. Hope you give it a shot!

Happy Coding! 🙂