Positive Thinking and Determination Helps One to Attain Goals

When it comes to setting and achieving goals, many people believe that positive thinking and determination are the two most important factors. And it’s true — if you want to achieve something, you…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




Little Scraps of Wisdom

I’ve been doing ‘web things’ for about 15 years now; it’s become an integral part of how I define and present myself. “What do you do?” — “I make websites”. “What’s your role?” — “Front-end developer”. “Do you internet?” — “Yes I do”. These things used to roll off the tongue as a matter of course in all sorts of daily conversations and I’m comfortable with that. The last few years however, have conspired in such a way that I’ve been forced to assume another guise — one which has largely superseded the ‘web dude’ one…

I’m now a Dad. In fact, I have been for over 4 years (but it still feels odd writing it down).

Becoming a parent to my daughter in late 2012, then doubling down with a son in 2016, has changed my life in all sorts of ways that I neither have the time nor the aptitude to fully articulate. But one way I’ll take a stab at, is how it’s helped me to be a better developer.

There’s a quote from Umberto Eco that I’ve always liked:

There’s rarely a big dramatic reveal when it comes to being who you are; it’s a culmination of small things — small changes — that alter you gradually until you’re noticeably different.

I’ve had loads of those changes since being a dad, to the point where I’m almost unrecognisable from who I was in 2012. More than the grey hairs and bags under my eyes, those changes have fundamentally altered my approach to work, and I’d like to share some of those things. 10 of them, in fact, because listicles are a thing.

You don’t have to have your own children to benefit from techniques to parenting, and you don’t have to write code to appreciate how raising a person is akin to development.

If you swap out ‘programmer’ for ‘child’ — there’s no difference to the steps that come after. Particularly the ‘ask questions’ thing! Kids become amazing adults the same way that code-types become ‘wizard programmers’, so why shouldn’t we learn from the experience of being a child / guiding children to adulthood(?). (We should. So let’s.)

or — some things that being a parent has opened my eyes to or reaffirmed, which have benefited me in some way in my working life, that i thought might be nice to share with you, so here they are

As a parent, it’s so easy to obsess over making sure you’re doing the right thing. There’s no pressure quite like the pressure of looking after an actual human being who needs you for literally everything. It’s natural to worry about whether they’ll turn out OK, that the choices you’ve made for them are the correct ones. Not only have you got your own crippling doubt, but a plethora of contradictory opinions from anybody else that’s ever had a child, or has ever even seen a child.

But it soon becomes clear that there really isn’t a right or wrong way — there’s just whatever gets you through. If it does the job and doesn’t hurt anyone, then that’s probably enough. For the most part, people wont notice there’s anything wrong.

MVP is the smallest thing you can build to deliver the value of your solution to your customers, or in child terms, it’s the big circle with a few lines coming out of it that is clearly a dinosaur.

Putting something out there (getting something done and showing it), demonstrates that you’re getting somewhere.

My daughter didn’t wait until she knew how to run before she started walking, and she didn’t perfect her gait before she started toddling around. It’s a process. Granted, during that process she fell over a lot, and you might fall too, but…

All through school, I was taught that mistakes are inherently wrong. The very etymology of the word comes from ‘taken in error’. They’re bad! But really, they’re not. You should try to see them as evidence of exploring an avenue that turned out not to be the one you wanted.

Kids embrace mistakes. They practically live mistakes! It’s an inevitable consequence of learning new things. Obviously you don’t want to make too many mistakes as that’s not a great use of your time, and there are things you can do to mitigate the effect of any errors, like ensuring you’re in an appropriate environment.

Start with a development environment where you can do pretty much whatever you want without fear of any serious repercussions.

A safe development environment

When you’re ready, move into testing (get QA involved if that’s what you do). That’s still local and private, but with some of the safety net removed.

Testing environment

Next is user acceptance.. i.e. sort of public, out in the open where people can see, but if things go wrong there’s enough padding so that you can try again.

User acceptance

Then when you’re confident, go to production and let the world see the fruits of your labour. By this point, you’ll probably have ironed out all the creases.

Production environment

This workflow probably isn’t new to you, but it’s good to remember that there are plenty of places where ‘failure’ is OK. My daughter is into the testing environment for most things in life, though she’s verging on UAT by now, whereas my son is transitioning from dev to QA. Cushions everywhere.

Every stage you go through is a learning opportunity, and as long as you’re not making the same mistake over and over, you’re doing fine.

A by-product of establishing safe areas to experiment and fail without fear is that you’ve got room to play. It’s crucial to grant time and space where playing is allowed — and encouraged.

When you’re at school, lessons are broken up a couple of times a day by playtime / recess (whatever you want to call it) and it’s often seen as a break from learning. But that’s unfair, because ‘playing’ shouldn’t ever be viewed as an alternative to ‘learning’.

For my kids, it’s where they practice and hone skills that will help them in their adult lives. Socialising, imagination, physical fitness; there are so many reasons why it’s important. How else would my daughter refine her dinosaur tracking skills, if not during play time? I mean, it’s hard to teach that in a lesson format.

With your code, there are plenty of places to play: in the dev environment, sites like codepen, your personal projects.. Sometimes you might get lucky and your play turns into work, or sometimes you’ll get lucky and it’ll stay fun. The point is: experimenting, trying new things for fun, and stretching your legs a little is important, regardless of where it leads to. It is, in and of itself, worthwhile.

That said, it can be useful to set some boundaries on that playtime. The amount of time it takes, for one, but also it can help to define a structure. If you let your kids out in the playground with no guidelines at all, it can descend into chaos fairly quickly. Playworks, a US company that organises play in schools reckon that “without structure, there are fewer opportunities for kids to be successful in directing their own play” and that it’s better to introduce some rules to frame the playtime. An example could be as simple as giving the child a couple of bean bags and a hoop, then letting them use those as props in their playtime. For devs, that could be defining a topic, or a framework to use, then encouraging free reign to use it however you like.

There’s a lot to be said for acquiring new skills and I’m in no way trying to say that’s not important. But I know that when my daughter wants to do something, she doesn’t worry about what she might need to get it done, she’ll use whatever she’s already got and make it work. Want to have a cape to look like Queen Elsa? Grab a tea-towel and a peg. Building a castle to stop your little brother stealing your jewels? Lay the sofa cushions around the pile of buttons you’ve got. Need to colour in an apple but don’t have a red pen? Get the purple pen, now it’s a plum which is fine because it’s still a fruit.

A lack of time leads to less creativity, but a lack of resources leads to creative thinking. If you don’t know about Vue or React or node or whatever, there’s absolutely nothing wrong with using jQuery if it means you’ll get the job done.

Don’t act like you don’t know (unless you don’t know)

It’s not a case of always sticking to the stuff you know (word to High School Musical) — it’s merely that what you know is usually quicker to work with, and is probably absolutely fine.

Picking up new skills comes with time and often out of necessity, but too often it creates a self-imposed barrier to just getting on with it.

i.e. using what you know, but to a better effect.

With my children, we’ve tried to maintain a log of big things they’ve done. First words, first steps, funny moments; they’re documented with a date and description in a notepad.

Milestones

Looking back through the list, it’s great to be reminded of the good times, and it also helps to inform future decisions. Knowing exactly when my daughter had her first swimming lesson for instance, meant we could aim to start my sons’ lessons at around the same age.

Same goes for commit messages: ‘did a code update, merged a feature’ is not a sufficient message. Be specific, be helpful!

This particularly applies if you do something successful, because it’s very easy to caught up in the moment and forget it later. Write things down so that you and other people can build on what you’ve done in the future. Even if your commit message consists of ‘refactored js to get the carousel working on every device’, that’s fine, because it’s good to…

Take the tree falling in the forest thought experiment.. does it make a sound? i.e. does something exist unless it’s actually perceived? (It’s why Brad should never have looked in the box at the end of Se7en). To put that into a work context: if you produce quality work but no-one knows about it, was that effort futile? If nobody saw it happen, did it really happen?

Noiseless

For a lot of people, the idea of blowing your own trumpet is embarrassing and potentially awkward, and that’s understandable. It’d be strange if you went around extolling every git commit as if it were solving world hunger, but that’s not what I mean. If ‘celebrate your success’ is anathema to you, then let’s call it ‘communicate your efforts’.

Step 5: Draw the rest of the panda

I love hearing ‘Daddy, look!’ for every individual pen mark on a page — it lets me see how things are coming together — what’s going right or wrong — and it makes all the more special when the final drawing is unveiled. It’s not like every doodle needs to get put up on the fridge, but it’s nice to see (and acknowledge) progress.

Oprah puts it quite pleasantly when she says that people should celebrate:

I can’t remember where I found that list, but it does sound like something Oprah would say.

This is sort of related to point 5 above, but more than that, it’s about sharing your findings with the wider world. The quote for the title of this section is from Maya Angelou, but the concept is something I’ve tried to instil in my kids from day one.

If they have a surplus of toys, they should share with their sibling. If my daughter has learnt something new that day, then I want her to tell me about it. In the best case scenario, I’ll learn something new too — but at the very least, the act of sharing the learning helps to enrich her own understanding of it.

Einstein apparently once said “if you can’t explain it simply, you don’t understand it well enough”, and there’s nothing quite like being tasked with ‘teaching’ a topic to get you researching it more.

An unavoidable consequence of sharing your views is that people will question them. As soon as you start giving back, you should be prepared for feedback. And that’s a good thing — great, in fact! Sharing your own knowledge is all well and good, but it’s only your perspective. Allowing yourself to be open to alternate (sometimes conflicting) views can only be a good thing; having that dialogue will either reshape or reaffirm your own view.

Realising that ideas and plans are flexible is one of the most important things that having children has made me do. I used to plan excursions to the nth degree — timings and activities mapped out long in advance. Trying that with 2 kids in tow is beyond laughable. Not only do things take longer, but they’ve both got their own ideas as to what a ‘fun’ day entails and it wouldn’t be fair (or even possible) to say mine is the right way. The whole thing works best when it’s an interchange of ideas where we end up where I wanted but (hopefully) everyone ends up having fun.

It might help to remember that listen is an anagram of silent.

Mind blowing, right(?) There’s no excuse now. Shut up when you’re listening.

It’s easy to fall back to ‘no’ when something isn’t exactly how you would’ve wanted it. The amount of times per day I find myself saying ‘no we can’t’ or ‘no, stop doing that’ is embarrassing. It’s (by definition) a negative word, and all it does it shut down the other persons viewpoint. Saying ‘no’ is the best way to dim a relationship, and if it’s a relationship you’re trying to nurture (e.g. parent/child) then that’s a horrible thing to realise you’re doing.

It’s a basic step, but starting with ‘yes’ and framing your response as a positive is much better for everyone. It immediately validates and accepts the other person, rather than rejecting them. Following up with ‘and’ augments their opinion, rather than ‘but’ which dismisses it.

By saying ‘yes, and’, you give an idea a chance to be acted upon. The problem with using ‘no’ as a starting place is that it polarizes, prompts defensiveness, and shuts down connection and collaboration. No-one wants to hear ‘no’ about something they suggest — there’s a basic human need for pride, and that takes a big knock if you shrug off someones viewpoint.

All this isn’t to say there isn’t a role for ‘no’. It’s definitely appropriate sometimes, just know when to use it. If you don’t resort to it all of the time, it’ll have more impact when you do. ‘No! Don’t touch the BBQ!’ is a good time to save ‘no’ for.

Finally, if you’re struggling with something that no-one in your immediate surroundings can help with, go external. Remember: it takes a village to raise a child — same applies to raising a developer.

It’s insanely rare that you’ll find yourself in an entirely unique predicament. There are people who have done it all before. Not sure how to start potty training? Ask other parents. Need a different approach to baby-led weaning? See what the grandparents did. Remember though, that copy / paste isn’t the answer .The key is to learn from them, use them for help if you need to, but ultimately forge your own path as what worked for them probably wont exactly work for you.

Other developers you work with are usually the first port of call, but if you don’t have access to people irl, that’s what the internet is for. So so so so many places to look for help and advice, whatever your problem is. I like to think that for every mumsnet post, there’s a direct stackoverflow equivalent.

mumsnet overflow

Don’t forget about podcasts, books (remember books?), local meet ups, conferences, medium posts.. whatever wherever. You’re not alone.

See what I did there(?) You thought there’d be 10 items, and now there’s an extra one. How happy are you right now?! This approach works incredibly well with children. It’s much better to say you’ll try to bring home a toy and then come back with armfuls of plastic animals, than it is to promise you’ll get something only to find the shop was out of stock and nowhere else is open.

The same will apply to your colleagues (or clients). Be the person that unexpectedly comes through with the goods quicker than expected, instead of failing to do what you said you’d do.

Having children is by far the most amazing thing that’s happened to me. Meeting my wife is up there too, but for the purposes of this — learning how to code was also a pretty big deal. They’re the things that define me, so it’s only sensible for me to see where the two roles overlap and can support each other. They’re both full of responsibilities and hidden bugs. They can be the best thing one day and insanely stressful another.

Being a parent or being a developer is a very lucky position to be in; we create things that go off into the world and that will ideally have a positive impact on it. There’s no one true way of behaving in either role, but there are methods of making things easier and more enjoyable while you’re doing it. Hopefully, you’ve picked up a couple here. If you’ve got some of your own, I’d love to hear them! My kids are only 4 and 2 — I’m under no illusion that I’ve learnt it all yet! This is (I’d imagine) an ever evolving list, and I’m looking forward to keeping it updated.

Come back in a decade for ‘10 Little Scraps: The Teenage Years’.

Add a comment

Related posts:

Do they lift you up or bring you down?

You do not need to be dependent on other people to validate you, for your self-esteem and self-confidence, and how you see yourself. You can value all types of relationships without being dependent…

Facebook targets net zero carbon emissions in supply chain

Facebook has announced that its global operations will achieve net zero carbon emissions and be 100% supported by renewable energy during 2020 As a result of wildfires burning north, south and east…

Is Social Media Aiding Fake News?

On the 10th of January, students at Bournemouth University were hurdled into buildings and armed police were called as reports of a man wearing a bomb vest were coming in. Thankfully, the ‘bomber’…