Posts

Showing posts with the label Software Developers

Skill-sets of a software developer

  Software developers implement software solutions by building programs, applications and websites. What does a software developer do?   Typical employers  |  Qualifications and training  |  Key skills There are four main types of software developer:  systems developers ,  web developers ,  mobile developers  and  test automation developers . New entrants to the profession tend to specialise in one of these areas when they start. A junior software developer, with experience, is likely to progress to senior software developer and later to software architect or similar. Other opportunities for promotion could include team lead or manager. Software developers’ typical duties include: discussing clients’ requirements and proposed solutions with a senior developer (for developers at mid-skill level and below) writing and testing code collaborating with other developers using development tools (see below) Development tools are used by software developers to write and test code, often as a te

Lessons I’ve learned from 2.5 years of Software Engineering

Image
by Sam Ollason I’ve been programming on and off since I was 16, but it’s only in the last of 2.5 years that it’s fair to say I’ve been working as a software engineer. In that time I have worked in a global team for a large and established investment bank and I am currently the Lead Developer for a revolutionary actuarial software start-up. I have worked with lots of exciting technologies and I have learnt an enormous amount. Here are a some of the key lessons and tips, particularly from my earlier years, that I wish someone had shared with me when I first started. I hope they help you. It doesn’t have to be perfect — just ‘good enough’ We software engineers love building things and naturally we become attached to what we build. If you aren’t a software engineer, imagine building a brand new car from scratch. Imagine spending months or years creating a car using just your brainpower, hard work, determination and team spirit. It was planned to be, and is, faster or better loo

Clean code, dirty code, human code

Image
Last week, Dan Abramov posted a very personal and humbling blog post entitled  Goodbye, Clean Code . I saw a tweet about this in my timeline and, being a long-term proponent of “clean” code, TDD and things of that ilk, I was naturally concerned. Here’s what I replied with. Daniel Irvine @d_ir @dan_abramov  You’re conflating two separate things. One is the desire to write clear, well-structured code. Another is your belief that your code is more valuable than that of your colleagues. I fear you’re missing the more important lesson. Human code > clean code > clever code > dirty code 15:00 PM - 12 Jan 2020    1   25 I dislike Twitter because it’s so hard to find any nuance to arguments. So in this post I’ll explain what I mean by  human code . It’s easier to blame code than it is ourselves I think it’s wonderful that Dan is blogging about deeply personal experiences in his career. Many programmers who become team leads will have had a similar experien

Why Unemployed Software developers are a cyber security threat?

Image
Software exists to make things we want to repeat -- in the exact same manner, time after time -- easy to access. When I press the “W” key, I expect a bunch of pixels to be placed on the screen in the shape of a W. I want this response to occur every time. Letters are then organized into words, then into sentences and then Microsoft Word. All highly stable, repeatable methods that are tried and true, wrapped in a user interface (UI) that makes it easy to access every repeatable routine. Even the way in which change is made is very slow, thoroughly tested and primarily focused on stability over the speed of change. It is all well and good to enable blue text, but it would be terrible if pressing the keys for a blue W outputted a Z. None of these aspects describe anything in cybersecurity. Cybersecurity is warfare, strike and counterstrike. It's chaotic and continuously changing. Products = Stable, repeatable methods Enterprise = Optimized, stable operations Cy