There is more to providing learning for the I.T. industry than just teaching code!

As IT trainers, should we be installing and promoting “good practice” and “ethics” alongside the coding and theory?

With the absence of a professional regulatory body in I.T. and web development, it is up to us to self-regulate. In doing so, it is essential that we pass on ethics and good practice to the next generation of developers and coders. It is not enough to just teach “good code” and computational thinking, we must provide the wisdom and morals to allow our students to implement their code in an ethical way.

Hacking, espionage, directed advertisements, ransomware, cyber-terrorism, fake news, fraud, spam, SQL injections, sexting, legacy content, the right to be forgotten -etc. are the headline threats to the future of our “on-line” world. However, beyond the obvious are the underlying ethics that affect our daily interactions in the digital age. It is crucial, I believe, that we create a culture of “best practice” within the IT industry to maintain our integrity and elicit trust from our clients and the wider public.

So, if I am not talking about the headline threats to online and digital ethics, what am I talking about?

I am referring to the need for standards and collaboration across the industry. The simple things that make life easier for us all:

  • Indenting your code so others can read your code
  • Commenting on your code so others can understand it
  • Personalising your code so others can’t plagiarise it
  • Make your code efficient and elegant to inspire others
  • Share code snippets with others so we can learn from your code and you from ours
  • Develop your code to be neutral of external influences (no politics, race, borders)

 

Let us now break these points down.

Indenting code

Indenting code has its advantages and disadvantages, but I will argue the positives far outweigh the negatives. Just as we use white space and paragraph in the written language to add emphasis and separate concepts, written code also benefits from this. Placing blocks of code separate from other blocks, or indented within a larger or parent block, helps others to read your code. Not only that, it makes it much easier for the developer themselves to isolate blocks of code when it comes to debugging or showcasing the code to the client or other team members. Different coding languages will have different levels of indentation built in – Python for example – whereas HTML will not enforce indentation (unless you are using a dedicated code editor or IDE). The W3C does go some way to highlight the need for indentation in their style guide by suggesting

·        Do not add blank lines without a reason.

·        For readability, add blank lines to separate large or logical code blocks.

·        For readability, add two spaces of indentation.

·        Do not use the tab key.

·        Do not use unnecessary blank lines and indentation. It is not necessary to indent every element.

Sublime Text 3 has a really innovative way of helping with indentation, it places gridlines that connect the levels of indent so you can visualise related blocks of code. This also helps with ensuring you properly </close> your elements. As mentioned before though, these are just “best practice” at the most, and are neither enforced nor necessary. This naturally causes ambiguity in code with various editors creating different indent depths, some automatically create indents (Dreamweaver etc) whilst others do not (Notepad++, Sublime Text, Brackets). The point I make here is, someone new to the coding environment using a free editor will not necessarily be aware of indenting. Does this make their code wrong? Does it stop it from working? Will it stop them from being paid? The answer is no! However, it may not endear them to their colleagues and will place them apart as “noobs” and will hopefully imply they are not certified developers – a theme we shall return to later.

<!– Commenting your code –>

I understand that commenting your code is more associated with teachers wanting their students to show their understanding when compiling code, but its use is far more important than that. If you are being paid to write code for a company, they will often own the intellectual property rights to the code. Therefore, they have a right to understand what parts of the code are doing. That aside, if you are working as part of a team, other members of your team will need to know what parts of the code are doing. I am certainly not suggesting you comment every line or element, but you should comment a block, function, iteration, concept, external file etc – for your own understanding and sanity if not that of others. I am not referring to putting in an <alt> text for an image – although clearly, that is good practice too – I am more concerned about professional ethics and good practice rather than semantics.

Personalising your code so others can’t plagiarise it so easily.

Ok, this may seem sneaky, but using another developers code as your own is far sneakier! It may also be prudent to add comments to code to try and catch those plagiarising your code, or using it for financial gain and infringing your intellectual property rights. Beyond commenting, you could also add a few “false” lines of code. I am all for sharing code or examining others code as a starting point or inspiration, but within that, you should <!–comment–> in a #reference to the original code and thus, credit the author.

 

Share code snippets with others so we can learn from your code and you from ours.Finally – join a forum! Learn, share, create, collaborate, ask, tell, say, question, expand. There are plenty of places to get involved. Stack Overflow is simply amazing and a must join for any budding or professional developer. Join “roughly 40 million developers who visit the site every month” and ask more than 8,000 questions a day! Another great resource is GitHub where you can share and collaborate.

I hope this article has gone some way in helping you understand the importance of Industry ethics and “good practice”. If it has…or hasn’t… please LIKESHARE or FEEDBACK the post. Thank you.

About the Author, – Dr Richard Haddlesey is the founder and Webmaster of English Medieval Architecture in which he gained a Ph.D. in 2010 and holds Qualified Teacher Status relating to I.C.T. and Computer Science. Richard is a professional Web Developer and Digital Archaeologist and holds several degrees relating to this. He is passionate about the dissemination of research and advancement of digital education and Continued Professional Development #CPD. Driven by a desire to better prepare students for industry, Richard left mainstream teaching to focus on a career in tutoring I.T. professionals with real industry ready skills that matter at The Training Room.

#ttrIT #ttrcareerinIT #ttrLearnToCode

Please follow and like us:

Crossing the Digital Platforms in WebDev

HTML5, CSS3 and JavaScript undoubtedly make creating cross-platform websites, but it is still essential Web Developers/Designers thoroughly test their sites before making them “live”.

Most websites will have been designed and built on a P.C., MAC or laptop, but increasingly they are being viewed on tablets and mobiles. This is often overlooked. As a teacher of computer science, we would often ask students to login to a site, or interact with a site to do some homework etc. Increasingly, students would reply – “we couldn’t get the website to work on my mum’s tablet or my phone sir”. “Don’t you have a laptop or computer at home”? “No sir, we don’t need one”.

Granted, it tends to be the youth that prefers mobile devices, but in 2016 the amount of people accessing the web via mobiles and tablets surpassed users of laptops (hallaminternet). It is also fair to assume that not everyone wants to download and install another mobile app that they will barely use. Therefore, it is crucial that as web developers/designers, that we create responsive sites that transfer the content to any platform without the need for the user to resize the site’s content. Even if CSS3 is not your strength, there does exist plenty of responsive templates on the net. Some of these – TEMPLATED – are provided free of charge and royalty free (providing you reference them). Even as a “seasoned pro” basing code on pre-existing templates saves time and can be used to show the client quickly what to expect before you commit to the lengthy process of bespoke coding. I am certainly not suggesting we plagiarise, but if we use templates and comment on our code professionally, I see no harm. As a pro, you should be able to delve into the code and personalise and change the content anyway, it is just a useful starting point.

Anyway, I digress a little. Back to the main thread. I am hoping that – using HTML5, CSS3 and JS – we can move away from mobile specific content, and more towards a responsive page that will display the same content optimised to the device, it is viewed on. This is will help greatly with “branding” and provide a consistent experience for the user. It also means the developer just needs to design each page once and apply a CSS to it, rather than make several iterations of a page designed to display on different devices.

——————————————————————————————————-

I hope this article has gone some way in helping you understand the importance of UPDATES. If it has…please LIKESHARE or FEEDBACK the post. Thank you.

About the Author, – Dr Richard Haddlesey is the founder and Webmaster of English Medieval Architecture in which he gained a Ph.D. in 2010 and holds Qualified Teacher Status relating to I.C.T. and Computer Science. Richard is a professional Web Developer and Digital Archaeologist and holds several degrees relating to this. He is passionate about the dissemination of research and advancement of digital education and Continued Professional Development #CPD. Driven by a desire to better prepare students for industry, Richard left mainstream teaching to focus on a career in tutoring I.T. professionals with real industry ready skills that matter at The Training Room.

#ttrIT #ttrcareerinIT #ttrLearnToCode

Please follow and like us:

I don’t wanna be Cyber Attacked – what can I do?

A question I often get asked is should I accept all these annoying updates from Microsoft.

YES! Is the short answer, and really the only answer, but many don’t or won’t?

OK, so there are caveats. If you only connect to your own network at home, never use the World Wide Web, never do anything that requires passwords and do not use internet banking, then no, you do not need to update. If you do, however, you really should!

In a recent whitepaper, DUO* suggested that over 65% of devices running Microsoft Windows are running the outdated Windows 7 released back in 2009. The operating system was withdrawn from support in January 2015 as it was too vulnerable to attack, although, Microsoft will still release minor security fixes until 2020. That, removal of support, was over two years ago, so if you are still running Windows 7 and accessing the World Wide Web, you are extremely vulnerable to attack! Microsoft even offered a free upgrade to the more robust Windows 10 for free, yet people still did not switch. I appreciate that people still like Windows XP and Windows 7, but they are just no longer safe or relevant in today’s online world. The software is changed and updated for a reason, it is not just to make money – after all, they gave it away for free – it is to plug the data holes and keep you safe online. This is not just a problem with out of date Windows devices, it is also the same for Android and iOS on Macs. Yes, the Mac is just as vulnerable to attacks**, it is just with about 7% of the P.C. market, you tend to hear less about it***.

  • If you continue to use Windows XP now that support has ended, your computer will still work but it might become more vulnerable to security risks and viruses. Internet Explorer 8 is also no longer supported, so if your Windows XP PC is connected to the Internet and you use Internet Explorer 8 to surf the web, you might be exposing your PC to additional threats. Also, as more software and hardware manufacturers continue to optimize for more recent versions of Windows, you can expect to encounter more apps and devices that do not work with Windows XP. —Microsoft

Now, if you take your “old” device into work to connect to their network, you are now making your entire company vulnerable to attack! Once you open a port from your device to the work intranet or Wi-Fi, you are giving attackers – via your outdated software – instant access to the network. Not only that, you are allowing a would-be attacker easy access to an otherwise secure business network. At the very least, everything you can access an attacker can also access. If they are sophisticated, they can potentially gain access to all the network. All this, just because you really like older versions of Windows! At my former place of work (a secondary school) a teacher brought in their old XP laptop and opened an email, they received from a person they did not know. Unwittingly, by opening that email on the school network, they introduced ransomware onto the network. This encrypted the entire school network and all drives. For nearly a week, the school network was unusable while the technicians worked to restore previous network backups. When the system was eventually restored, all the recent files people had been working on since the backup were lost. Obviously, the school did not pay any ransom, but only because they back up the system files twice a week; had they not have done – there would have been no way to restore the files without paying the ransom and getting the unlock code.

In the light of recent cyber attacks, in May 2017 –  Microsoft has come out and said this is a “wake-up call” and reiterates the need to install their security patches as, and when, they are released.

  • Ransomware is a type of malware that prevents or limits users from accessing their system, either by locking the system’s screen or by locking the users’ files unless a ransom is paid. More modern ransomware families, collectively categorized as crypto-ransomware, encrypt certain file types on infected systems and forces users to pay the ransom through certain online payment methods to get a decrypt key.https://www.trendmicro.co.uk/vinfo/uk/security/definition/ransomware

I am certainly not trying to imply that, had the user been using an updated version of Windows 10 that that would never have happened. Instead, I am trying to add to the discussion that the often overlooked threat to network security is internal human errors****. However, “User Behavioural Analytics” are beyond the scope of this discussion.

Summary

Keeping your system up to date with the latest security patches and software add-ons remains a highly important step in combating hackers.

In short —

INSTALL and UPDATE

  • Your Operating System
  • Your browser
  • Your browser add-ons
  • Anti-Virus software
  • Anti-Malware software
  • Anti-Spyware software
  • Firewall

·        Do NOT open unknown emails and attachments EVER!

Some people tend to think that if your device is set to download and install updates alongside a disk defragmentation automatically at the default time of 03:00AM, then that is enough to keep them safe if they turn their machine off before bed. Well,…are you saying you expect the device to wake up at 03:00 and turn itself on, connect – by itself – to the internet, download and install updates/patches/drivers/code then check your hard drive for errors – before turning itself off again and going back to sleep? I’m sorry but it doesn’t!


 

I hope this article has gone some way in helping you understand the importance of UPDATES. If it has…please LIKESHARE or FEEDBACK the post. Thank you.

About the Author, – Dr Richard Haddlesey is the founder and Webmaster of English Medieval Architecture in which he gained a Ph.D. in 2010 and holds Qualified Teacher Status relating to I.C.T. and Computer Science. Richard is a professional Web Developer and Digital Archaeologist and holds several degrees relating to this. He is passionate about the dissemination of research and advancement of digital education and Continued Professional Development #CPD. Driven by a desire to better prepare students for industry, Richard left mainstream teaching to focus on a career in tutoring I.T. professionals with real skills that matter.

#ttrIT #ttrcareerinIT #ttrLearnToCode

Visit his Blog and Website

Read more about Dr Richard Haddlesey BSc MSc PGCE PhD

Bibliography

*https://duo.com/resources/ebooks/the-2016-duo-trusted-access-report-microsoft-edition

**https://nakedsecurity.sophos.com/2016/09/02/patch-now-recent-ios-vulnerability-affects-macs-too/

***http://www.macworld.co.uk/how-to/mac-software/do-macs-get-viruses-do-macs-need-antivirus-software-3454926/

**** The Essential Guide to Behavior Analytics – www.balabit.com

Please follow and like us: