Uncategorized Archives - Simple Programmer https://simpleprogrammer.com/category/uncategorized/ Thu, 16 Mar 2023 10:56:18 +0000 en-US hourly 1 https://wordpress.org/?v=7.0 6 BEST Python Courses in 2023 https://simpleprogrammer.com/best-python-courses/ Wed, 15 Mar 2023 22:34:00 +0000 https://simpleprogrammer.com/?p=45381 Quick verdict Learn Python 3  Codecademy Learn Python 3 has you write your own code in an interactive environment through 12 lessons + 12 quizzes, completing 14 projects in the process & earning a certificate of completion. Python Specialization  Coursera An 8 month long deep dive – taught by a university professor – that takes...

The post 6 BEST Python Courses in 2023 appeared first on Simple Programmer.

]]>
Quick verdict

Learn Python 3 

Codecademy

Learn Python 3 has you write your own code in an interactive environment through 12 lessons + 12 quizzes, completing 14 projects in the process & earning a certificate of completion.

Python Specialization 

Coursera

An 8 month long deep dive – taught by a university professor – that takes you from the fundamentals to proficiency in web apps, databases and data analysis with Python.

Python for Absolute Beginners

Udemy

To start learning with the simplest steps possible (zero experience required), look no further than this course a Udemy. It’s very affordable, and comes without unnecessary complexity, so you don’t have to worry about becoming frustrated with the material.

Advanced Python 3

Codecademy

Learn Advanced Python 3 is perfect for getting into the realm of master-level Python programmer. The techniques taught in this course will lead you to the most efficient Python code you’ve ever written.

Python Back-End Bootcamp

NuCamp

For the most ambitious learner who wants to score a job as a Python developer. 4 months of daily practice, weekly interactive live classes, 1:1 mentorship and peer assistance, building certified skills for your new Python-powered career.

Python Data Analysis Skill Path

Codecademy

Python is the most popular language for Data Analysis today. Codecademy’s course is a great vehicle for you to hop on that trend. Learn the ins and outs of Data Analysis with Python at Codecademy’s intuitive learning platform.

My review method

My background

I’ve worked as a Full-Stack Software Engineer, Software Consultant, and an online instructor in the field of computer programming for over a decade. 

During my career I’ve learned 15 programming languages to a level where I could teach others – which has led me to create 55 courses at a popular code-learning website.

John Sonmez teaching at code learning websites

The metrics I’ve used for this comparison

To establish the ratings for each course, I’ve looked at the following:

  • Content range, depth & quality
  • Structure & user experience
  • Instructor prestige & skill
  • Community
  • Price-performance ratio

The 6 best Python courses

Here’s my review of the 6 best resources you can use to take your Python skills to the next level.

Learn Python 3

With Codecademy, you’re learning Python in bite-sized pieces, and you start coding from the get-go. The popular gamified platform lets you complete code challenges for each topic – after solving each one, you advance to the next step.

Codecademy's most popular Python course

  • Time to complete: Around 25 hours (Self-paced)
  • Prerequisites: None (Beginner-friendly)
  • Special features:Numerous projects, hands-on learning with live code editor, mobile app for on-the-go practice, community forums, certificate of completion, many more Python courses included in the membership, 7-day free trial

Overall Rating: 4.2/5✨

Quality

Depth

Structure

Instructors

community

price

There’s intermittent quizzes and assessments for you to prove your new skills.

Every step of every project is completed inside the platform: The course gives you a split screen view of the training material & the built-in coding environment so you can translate what you’re studying into code, in real time.

Curriculum:

  1. Hello world (learning Python syntax)
  2. Control flow
  3. Lists
  4. Loops
  5. Functions
  6. Python code challenges
  7. Strings
  8. Modules
  9. Dictionaries
  10. Files
  11. Classes
  12. Python code challenges II
  13. Advice for your next steps

What I like – the Pros:

  • Codecademy offers the best learning experience out of all Python courses, because the specialized platform holds your hand through every step.
  • It’s a motivating and fun way to master Python from the ground up.

What I don’t like – the Cons:

  • If you’re a very autonomous learner or/and prefer to gather knowledge of high-level or advanced concepts before you dive into coding, Codecademy’s pre-set, step by step structure might turn you off.

Python for Everybody – Specialization

With this course from the University of Michigan on Coursera, you start with the basics – installing Python and coding your first simple programs. In five exhaustive modules, you’ll go much deeper into all aspects of Python than with most online code-learning programs.

Coursera's Python Specialization

  • Time to complete: 8 months (@ 3 hours / week, self-paced)
  • Prerequisites: None (Beginner-friendly)
  • Special features:Course videos, practice quizzes, assignments with feedback, hands-on learning projects, certificate of completion, subtitles for many languages, 7-day free trial

Overall Rating: 4.7/5✨

Quality

Depth

Structure

Instructors

community

price

Over the course of 8 months, an accredited university professor will teach you to understand and use Data Structures, Databases & Data Retrieval at an intermediate level. In the process you’ll have gained skills in Json, XML, Tuple, Web Scraping, Sqlite, SQL, and more.

Curriculum:

  1. Getting started with Python
  2. Python Data Structures
  3. Using Python to access web data
  4. Using Databases with Python
  5. Retrieving, Processing, and Visualizing Data w/ Python

What I like – the Pros:

  • The Python for Everybody Specialization offers you coding education at a professional level of quality – you won’t have to worry about the material being incomplete in any way. 
  • You can transfer your learnings into tangible results with the projects included in the course, which you can show to other students to get valuable feedback.
  • The video lectures included in the specialization are excellent.

What I don’t like – the Cons:

  • If you don’t want to commit to such a deep dive into Python deep dive, but are content only taking small first steps, you’re better off picking a simpler course option.
  • Coursera’s platform also isn’t as gamified as Codecademy, for example, so you’ll need a bit more intrinsic motivation to keep up your learning habit and see the course through to completion.

Python for Absolute Beginners

If you’re looking to learn Python from the very beginning, with simple exercises anyone can do, and don’t want to be distracted by fluff or too advanced instructions, this Udemy course is for you.

Udemy's best beginner Python course

  • Time to complete: 4.5 hours of video content, to be completed at your own pace
  • Prerequisites: None (Beginner-friendly)
  • Special features:Low cost for lifetime access to the course, certificate of completion, review exercises and challenges, 30-day money-back guarantee

Overall Rating: 3.25/5✨

Quality

Depth

Structure

Instructors

community

price

Like most of Udemy’s trainings, Python for Absolute Beginners is one of the most affordable options to learn this language. 

The value you get in exchange is high: All basic concepts are covered, and taught in a way that’s easy for anyone – regardless of talent or experience – to understand. 

The quizzes and challenges in each module motivate you even more to keep coming back to the course, in addition to the quick wins you get from the simple instructions.

Curriculum:

  1. Python & Pycharm setup & first project
  2. Python basics
  3. Strings
  4. Functions
  5. Flow control
  6. Loops
  7. Strings part 2
  8. Lists
  9. Dictionaries
  10. Tuples

What I like – the Pros:

  • The no-fluff, practical teaching style is refreshing
  • Quizzes and challenges make the course more fun and hands-on
  • The instructional videos explain everything well and are of high quality

What I don’t like – the Cons:

  • If you have decent experience in Python, you’ll feel like this course is moving through the topics too slowly, so you won’t get as much value out of it and should probably choose something more advanced
  • While the course has code challenges, you don’t get to complete a full software program like you do with some other Python trainings. It’s meant to be an introduction to the language. Expect to gain valuable skills – but not to be a complete Python developer after you’ve gone through it

Learn Advanced Python 3

Advanced Python 3 at Codecademy teaches you a new set of tools to bring better structure & efficiency, advanced database functionality, effective deployment, and debugging ability to your Python code.

Codecademy's advanced Python course

  • Time to complete: Around 9 hours (Self-paced)
  • Prerequisites: None (Beginner-friendly)
  • Special features:Numerous projects, hands-on learning with live code editor, mobile app for on-the-go practice, community forums, certificate of completion, many more Python courses included in the membership, 7-day free trial

Overall Rating: 4.1/5✨

Quality

Depth

Structure

Instructors

community

price

If you’ve moved past the beginner stage as a Python programmer – and are looking to overcome the intermediate plateau – this Codecademy course highlights the exact concepts you need to study to write programs that are a level above when it comes to functionality, code cleanliness, readability and maintainability.

The material is presented in their usual step-by-step manner, with different projects and quizzes for each module.

Curriculum:

  1. Introduction to Advanced Python
  2. Logging
  3. Functional Programming
  4. Database Operations
  5. Concurrent Programming
  6. Deployment
  7. Your next steps

What I like – the Pros:

  • Even though it’s an advanced-level course, Codecademy doesn’t bombard you with dozens of theoretical concepts to chew through. Instead it sticks with its simple, motivating style that has you put each piece of new knowledge into practice before moving on to the next challenge. 

What I don’t like – the Cons:

  • I wouldn’t have minded more modules inside the course, which would have turned it into a proper online masterclass – it takes only around 9 hours to complete all modules. If you want to learn other intermediate/advanced skills like creating web apps with the Flask library, using advanced Data structures & Algorithms, or Data Analysis, you have to start over with another one of their courses.

Back End, SQL, and DevOps Developer Bootcamp with Python

If you’re looking to go as deep as possible into learning Python, and building the foundation for a fruitful career as a Back-End Developer with Python, this 16-week online bootcamp could be for you.

Back-End Python Developer Bootcamp at NuCamp

  • Time to complete: 16 weeks (Scheduled) @ 12 hours / week
  • Prerequisites: Web Development fundamentals
  • Special features:1:1 career sessions, 4-week career development course, resume & LinkedIn assistance, hackathons, job board, free month of LinkedIn Premium & LI Learning, lifetime access to course content

Overall Rating: 4.2/5✨

Quality

Depth

Structure

Instructors

community

price

NuCamp’s Python bootcamp provides a tighter community because of the cohort-based structure. And — in exchange to paying higher course fees than for any other training in this review — you’ll also get 1:1 mentorship and career assistance.

Curriculum:

  1. Loops
  2. Functions
  3. Complex data structures
  4. Classes
  5. Object-oriented programming
  6. Algorithms
  7. SQL databases
  8. Linking PostgreSQL to Python apps
  9. SDLC & Agile
  10. DevOps & CI/CD
  11. Cloud deployment (Amazon AWS, Azure, Firestore)

What I like – the Pros:

  • The cohort-based structure means you’ll learn alongside your peers, form a deeper connection to your teachers, and be motivated by meetings and exams with deadlines
  • A bootcamp like this will put you ahead even of others who’ve been using Python for longer, because the immersive environment has you learn more, much faster
  • The price isn’t excessive in comparison to other coding bootcamps

What I don’t like – the Cons:

  • Because it’s “only” a 4-month program, it doesn’t teach you Python for web development from the ground up, but instead requires some existing knowledge of the topic. It’s therefore not recommend for total beginners

Analyze Data with Python Skill Path

Data Analysts are in high demand. This skill path at Codecademy equips you with a range of skills needed to analyze data with Python and Python libraries.

Data Analysis Course with Python at Codecademy

  • Time to complete: 10 weeks (Self-paced)
  • Prerequisites: Beginner-friendly
  • Special features:Numerous projects, hands-on learning with live code editor, mobile app for on-the-go practice, community forums, certificate of completion, many more Python courses included in the membership, 7-day free trial

Overall Rating: 4.1/5✨

Quality

Depth

Structure

Instructors

community

price

This course provides the perfect basis to doing Data Analysis using today’s most popular tools.

Curriculum:

  1. Why Data Analysis?
  2. Python Syntax
  3. Python Functions
  4. Lists
  5. Lambda Functions
  6. Files
  7. The NumPy library
  8. Data Manipulation with Pandas
  9. Data Visualization with Matplotlib
  10. Statistics for Data Analysis
  11. Hypothesis Testing with SciPy
  12. Final projects

What I like – the Pros:

  • Again, I love the learning experience and structure of Codecademy, and this course holds up to the standards set by their other courses
  • The many projects included in the course are great to transfer everything “into the real world” right away

What I don’t like – the Cons:

  • I would’ve liked recommendations for some more theoretical resources you could choose to check out in addition to or after the course

That’s it for the 6 best Python courses. I hope you could pick the perfect one for yourself.

Happy Python coding!

FAQ

How long will the average Python course take?

The range for how long a Python course takes is between 4.5 and 196 hours. While the basic courses take no more than 25 hours, an immersive Python bootcamp can take almost 200 hours spread out over 4+ months.

How much is a Python certificate?

<

p style=””>Prices for the certificates in Python ranged between $15 for a Udemy certificate to $2000 for a certificate of completion from a NuCamp online Python bootcamp. Of course these certificates differ in value, and some of them are accredited while others are not.

The post 6 BEST Python Courses in 2023 appeared first on Simple Programmer.

]]>
Quickest Way to Make 6 Figures https://simpleprogrammer.com/quickest-way-to-make-6-figures/ Thu, 28 Jul 2022 15:53:26 +0000 https://simpleprogrammer.com/?p=41255 Today we’ll talk about the quickest way to make six figures as a software developer. I know a lot of you are already making six figures, which is fantastic; you will still be able to use this advice because I will tell you how to get to the next level at the end of this...

The post Quickest Way to Make 6 Figures appeared first on Simple Programmer.

]]>
Today we’ll talk about the quickest way to make six figures as a software developer.

I know a lot of you are already making six figures, which is fantastic; you will still be able to use this advice because I will tell you how to get to the next level at the end of this video.

But for those of you who are just getting started, I’m going to show you exactly how to go from beginner to six-figure earner as quickly as possible.#fastestwaytomakesixfigures #make6figures #howtomakemoney

[responsive_video type=’youtube’ hide_related=’0′ hide_logo=’0′ hide_controls=’0′ hide_title=’0′ hide_fullscreen=’0′ autoplay=’0′]https://www.youtube.com/watch?v=Go1cl73UOLk&ab_channel=SimpleProgrammer[/responsive_video]

The post Quickest Way to Make 6 Figures appeared first on Simple Programmer.

]]>
Node.js Vs ASP.NET – Battle of Two Server-Side Languages https://simpleprogrammer.com/node-js-vs-asp-net/ Mon, 25 Jul 2022 14:00:11 +0000 https://simpleprogrammer.com/?p=41240 The software and web development industry is experiencing new twists and turns every year with the introduction of new trends, languages, frameworks, etc. With the advancement in technology, developers have an ample range of versatile languages to choose from for developing platforms with advanced functionality. This is where Node.js and ASP.NET come into the picture...

The post Node.js Vs ASP.NET – Battle of Two Server-Side Languages appeared first on Simple Programmer.

]]>
node.js vs asp.netThe software and web development industry is experiencing new twists and turns every year with the introduction of new trends, languages, frameworks, etc. With the advancement in technology, developers have an ample range of versatile languages to choose from for developing platforms with advanced functionality.

This is where Node.js and ASP.NET come into the picture as two remarkable server-side languages for building enterprise applications.

In this post, I will be discussing the ongoing debate of Node.js versus ASP.NET in the developer community. The goal is to find out which comes out on top in a detailed comparison of both languages.

What Is Node.js?

Node.js, developed by Ryan Dahl in 2009, is a single-threaded, cross-platform, open-source, and asynchronous event-driven JavaScript runtime for building fast and scalable network applications.

It runs on Google’s V8 engine (JavaScript engine) and executes JavaScript code. It is suitable for building data-intensive applications, SPA, online chat apps, and video streaming sites.

Node.js is also very apt in handling concurrent requests effectively, as the cluster module of Node.js helps in load balancing all the active CPU cores.

Because Node.js runs on JavaScript, it’s popular among developers, since they don’t have to learn a new language from scratch. This saves considerable time by using the same coding language for both front-end and back-end development.

Companies using Node.js include Uber, Netflix, LinkedIn, Twitter, Trello, PayPal, NASA, eBay, Medium, GoDaddy, and WalMart.

With all this in mind, it’s now time to see some of the key features of Node.js.

Single-Threaded

Node.js operates on Single Threaded Event Loop Model architecture. The event loop mechanism makes the Node.js server more scalable by allowing it to perform all non-blocking operations smoothly. Unlike Apache HTTP servers, Node.js can handle multiple client requests.

Asynchronous

By default, Node.js APIs are non-blocking (asynchronous) in nature. In simple terms, if a client requests a server, then a single thread handles the request. If there is no database interaction with the request, the request is processed, and the client receives the response.

Event-Driven

Node.js has a notification mechanism called “Events” used to receive and track previous API requests from the server. The event-driven mechanism works similarly to the callback mechanism of asynchronous programming. Once the server is started by Node, it declares functions, initiates its variables, and waits for the occurrence of the event. The event module of Node.js has a class called “EventEmitter” that implements event-driven programming.

NPM

Node Package Manager (NPM) is the largest online repository for the JavaScript runtime environment Node.js. With over 1.3 million packages available in the npm registry, developers use npm to discover, develop, install, and publish node programs. At the same time, new organizations can manage private development effectively using npm.

Highly Scalable

The asynchronous nature and single-thread architecture of Node.js make it highly scalable. When a request arrives, the single thread starts processing it, the response is sent back to the client, and the cycle continues. Node.js uses child processes to partition the applications horizontally, which helps the organizations customize the app versions according to client preferences.

Cross-Platform Compatibility

Node.js apps are written in JavaScript and can be used on multiple systems like Mac OS, Windows, Linux, Unix, and mobile devices. A large number of developers write Node.js on OS X and then deploy it into Linux servers. In the Node.js community, Windows gets first-class support.

Performance

Node.js is built on Google Chrome’s V8 JavaScript Runtime motor, which promotes faster code execution. The V8 engines compile JavaScript code into machine code with the help of C++. The V8 engine makes the code implementation smoother and faster.

What Is ASP.NET?

ASP.NET (Active Server Pages Network Enabled Technologies) is a server-side, open-source web app development platform that helps developers build dynamic, data-driven, and interactive apps, websites, and services. It is an eccentric integration of JavaScript, HTML, and CSS.

.NET was built on Common Language Runtime (CLR) and allows developers to use .NET languages like C#, C++, VB.NET, etc. for writing the code. Unlike Python, Java, or PHP, ASP.NET uses compiler-based technology. The compiler gathers all the instances of code and compiles them concurrently. This makes the ASP.NET Core faster and more performant than other frameworks.

So let’s take a look at some of the core features of ASP.NET, used by companies such as SpaceX, Alibaba Travels, ROBLOX, MasterCard, Slack, Cognizant.com, Queue-it, Motorola Solutions, and ViaVarejo.

Supports Cross-Platform

ASP.NET apps can be easily deployed and run immediately on platforms like Linux, Mac OS, and Windows. With .NET, developers have the freedom of choosing their desired OS.

Comprehensive Development Environments

Developers can utilize an IDE (Integrated Development Environment) like Visual Studio for developing aesthetically amazing apps. IDEs provide a rich and dynamic environment for developers to build apps from scratch using drag-and-drop components.

Language Independence

.NET is known as the language-neutral framework. Meaning, developers can use various languages, like C#, for developing apps. They can also create dynamic applications like Starbucks, TrustPilot, Agoda, GoDaddy, etc. using those languages.

High Security and Performance

Developers are likely to agree that, for any software, performance is one of the crucial factors in app development. The ASP.NET Core and Kestrel Web Server have made the .NET framework one of the quickest, most responsive, and most lightweight frameworks available in the market. The new Kestrel Web Server provides asynchronous programming approaches that make the framework fast.

At the same time, Kestrel Web Server provides a unique identification of all the applications that are running on the ASP.NET framework, as .NET verifies the authenticity of apps before allowing them to run.

To learn more, consider reading “Beginning ASP.NET Security.” 

Support HTML5 Form Types

HTML forms allow users to enter the values via various input elements like text boxes, buttons, radio buttons, check boxes, drop-down lists, and more. After providing the values in the various fields, users need to click the submit button to send the data.

ASP.NET supports HTML5 form types. After incorporating the HTML form, additional coding is required to get and display the data on the browser entered by the user.

Unified MVC and Web API Frameworks

node.js vs asp.netBefore the development of the ASP.NET Core, developers relied on Model-View-Controller (MVC) frameworks for building web applications—using HTML and Web API to develop RESTful API via XML and JASON. The development of ASP.NET Core has simplified development by combining the MVC and Web API. Now instead of HTML, MVC always returns JASON data.

There is a new element in the ASP.NET Core called Razor pages, which helps in simplifying web UI development. It is a page-based coding module that extends the MVC framework to allow the abridgement of the controller and model features of the page.

Dependency Injection

Before the .NET Core, if the developers had to provide dependency injection in the applications, then they had to rely on third-party frameworks like StructureMap, AutoFactor, etc. However, with the introduction of the ASP.NET Core, this dependency on third-party frameworks died down as the Core has an in-built dependency injection that helps improve the testability and extensibility of the web apps.

Action Filters and Web Sockets

One of the principal features of .NET is Action Filters. These filters help the developers to implement functionalities like caching, authorization, error handling, or any custom logic that can be applied to an action or a controller without modifying the action itself.

ASP.NET supports Web Sockets, which are used to create web-based client-server apps and provide to and fro communications with the browser. Web Sockets are useful in developing real-time communication applications like chatbots, gaming apps, social feeds, etc.

Asynchronous via Async/Await

With the implementation of Async in all the .NET frameworks and third-party libraries, ASP.NET has splendid support for asynchronous patterns. The extensive use of asynchronous programming patterns in the new MVC and Kestrel frameworks has made the .NET Core faster in performance.

Now it’s time to move on to the next round of the Node.js versus ASP.NET battle. Let’s see which server-side language is better performing based on pros and cons.

Pros and Cons of Node.js

Pros:

  • Developers don’t have to install external modules when using other apps.
  • Developers can interact with other operating systems using a cross-platform library.
  • Although it’s single-threaded, it can handle multiple core servers instantly.
  • It has the support of a vast active developer community.
  • It has fewer abstractions and uses an event looping mechanism.
  • There is no buffering when using the platform.
  • It serves both client-side and server-side applications.

Cons:

  • The asynchronous nature of Node.js makes it challenging for developers to implement it.
  • Its limited library support requires developers to integrate third-party libraries into their apps.
  • Difficult code readability.
  • It is difficult to fix bugs and maintain code.
  • The architecture of the apps may get jumbled due to the presence of multiple microservices.
  • Unstable APIs and callback issues.

Pros and Cons of ASP.NET

Pros:

  • Applications are secured by the built-in per-application arrangement and Windows verification.
  • It has a rich toolkit.
  • Its just-in-time compilation, caching administrations, local optimizations, and early authoritative provide super execution.
  • It is backed by Microsoft and provides better security and safety.
  • It is cost-effective, simple to maintain, and easy to update.
  • Its drag-and-drop IDE is easy to use.
  • It has generic error handling capabilities and uses multiple threads.

Cons:

  • Initial compilation is time-consuming.
  • Upgradation of the older apps of the .NET framework is a very hectic process.
  • It has few third-party libraries and has manual configurations.
  • It is less portable compared to Node.js.
  • No support for Java.
  • The core of the ASP.NET is raw, and its documentation is not detailed.

Node.js Vs ASP.NET: A Detailed Comparison

To better understand this high-intensity Node.js versus ASP.NET battle, let’s compare these two frameworks based on the following parameters:

Parameters Node.js ASP.NET
Overview An open-source JavaScript runtime environment that translates source language into machine code. An open-source web app framework used for server-side scripting.
Release Date and Community Initial release in 2009 and has a large community on GitHub. A stable version was made public in 2002. It has a strong community on Stack OverFlow and has the support of Microsoft.
Framework Total.js, AdonisJS, VulcanJS, etc. ASP.NET
Libraries ConvNetJS, Limbdu.js, ml.js, Stdlib, etc. Nswag, Unity.WebAPI, IdentityServer04AspNetIdentity
Language JavaScript Visual Basic, C#, F#
When to Use To develop asynchronous and cross-platform apps. To develop interactive and dynamic websites.
Performance Handles multitask due to its high-speed Chrome V8 engine. Handles high CPU-intensive work and is 15% faster than previous versions.
Development Tools Text editor, IDE, WebStorm NDepend, ELMAH, Mono Develop, ReSharper, etc.
Speed Smooth handling of callbacks and faces less abstractions. Conventions enable code enhancements.
Available Package npm NuGet
Real-Time Usage Large amounts of customer data can be easily maintained and controlled. A large number of websites are developed using ASP.NET.
Availability Wide range of small and reusable libraries. The highly scalable framework increases development speed.
Reliability Error handling is a huge challenge for developers. Error handling is easy.
Portability Highly portable on most platforms. Partially portable.
Learnability Node.js is dynamic in nature and is easy to learn if you have prior knowledge of JavaScript. It has built-in project structures and various examples for utilizing MVC patterns for beginners, but moving from basic to advanced things may be time-consuming.
Stability Developers write most of the modules. If some modules have become outdated, it will be hard to update them, which affects project stability. It has the backing of Microsoft and has high project stability.
Processing Model Works on an asynchronous programming model and is single-threaded. It can handle multiple requests simultaneously. Works on a synchronous model and is multi-threaded.
Platform Anatomy It supports cross-platform development (i.e. Linux, Windows, and OS X). Initially, it supported only the Windows system, but after .NET Core, it supports cross-platform development.
Hosting Linux Web Server AWS, Azure, Heroku, and Google Cloud Platform.
Concurrency Uses a single CPU thread. For multiple threads, it depends on clustering. Thread Pool helps in utilizing multi-core systems.
Memory Management The memory limit is 512MB on a 32bit system and 1GB on 64GB system; expandable to 1GB and 1.7GB respectively. The memory limit is 2GB on a 64bit system.

So, Who Won the Battle?

The discussion of Node.js versus ASP.NET will be going on for years to come, as to which of the two is the best framework for custom software development or to build enterprise applications. From the parameters I have considered, I would say that .NET is best suited for large-sized applications, whereas for small and medium-sized apps and services, Node.js is the best choice.

It’s hard to tell which is better overall between the two as the advantages of both frameworks compensate for their limitations. Even though ASP.NET has high performance compared to Node.js, the light weight of Node.js gives .NET tough competition.

Ultimately, the framework selection should depend on your organization’s requirements, keeping in mind both present and future aspects of the project.

The post Node.js Vs ASP.NET – Battle of Two Server-Side Languages appeared first on Simple Programmer.

]]>
I’m 47 And Now I Want to be a Programmer https://simpleprogrammer.com/im-47-and-i-want-to-be-a-programmer/ Thu, 21 Jul 2022 16:28:51 +0000 https://simpleprogrammer.com/?p=41232 In this episode, I talk about wanting to be a programmer at a certain age. [responsive_video type=’youtube’ hide_related=’0′ hide_logo=’0′ hide_controls=’0′ hide_title=’0′ hide_fullscreen=’0′ autoplay=’0′]https://www.youtube.com/watch?v=l7rCvjeY23Q&ab_channel=SimpleProgrammer[/responsive_video]

The post I’m 47 And Now I Want to be a Programmer appeared first on Simple Programmer.

]]>
In this episode, I talk about wanting to be a programmer at a certain age.

[responsive_video type=’youtube’ hide_related=’0′ hide_logo=’0′ hide_controls=’0′ hide_title=’0′ hide_fullscreen=’0′ autoplay=’0′]https://www.youtube.com/watch?v=l7rCvjeY23Q&ab_channel=SimpleProgrammer[/responsive_video]

The post I’m 47 And Now I Want to be a Programmer appeared first on Simple Programmer.

]]>
Choosing A Gamification LMS: Features To Look Out For https://simpleprogrammer.com/gamification-lms-features/ Fri, 02 Oct 2020 14:00:24 +0000 https://simpleprogrammer.com/?p=37209 Engaging learners, be it in a K-12 scenario or employee training, is a known challenge in development and learning circles. Over the years, a lot of research has been conducted with the hope of finding out more about how the human brain learns. Thanks to this research, combined with advancements in technology, we now have...

The post Choosing A Gamification LMS: Features To Look Out For appeared first on Simple Programmer.

]]>
gamification LMSEngaging learners, be it in a K-12 scenario or employee training, is a known challenge in development and learning circles.

Over the years, a lot of research has been conducted with the hope of finding out more about how the human brain learns. Thanks to this research, combined with advancements in technology, we now have tools at our disposal that are designed specifically to keep learners engaged.

One well-known technique to engage learners is gamification. To put it into simple words, gamification is the practice of adding game-like elements to a training experience.

It is a proven technique that uses the mind’s reaction to receiving a reward to motivate learners to invest themselves into the training program and ultimately help them perform better.

In order to successfully implement gamification in your training experience, you will require a robust learning management system (LMS) with gamification-enabled features. The right gamification LMS for your needs will depend on the features offered by the LMS, so it’s important to know what features exist and how you can use them.

What Is a Learning Management System?

A learning management system is a virtual platform designed to store and distribute training material. Most modern learning management systems are based on the cloud and allow for training material to be easily shared with the learners.

Modern day LMS also offer tracking capabilities, which allow you to see reports and other data that shows how your learners are doing. These platforms can also be used to deliver a blend of self-paced and virtual instructor-led training, offering a complete set of capabilities like in-built whiteboards and video recording features. The availability of such features may vary among different products and will also have a significant influence on the cost and the user-friendliness of the LMS.

LMS also offer the ability to add game-like features that are scientifically proven to improve your learners’ motivation and, consequently, their engagement with the learning experience. Once again, not all gamification LMS are built the same, and some may offer a different set of features than their competitors.

The following are some of the most basic yet effective gamification features that your LMS should have. Choosing an LMS with all these features will allow you to build a vibrant training experience for all your learners.

Points

Awarding points as a reward of good performance is perhaps the easiest way to implement gamification, in theory.

In reality, implementing a point mechanism is a complex task because in order to truly drive impact with this strategy, you must assign a point reward to every possible action or task that a learner may complete. You cannot, for instance, simply give out points to those performing well in assessments because that would simply be giving out scores after a test.

For this reason, successfully implementing a point system will require a lot of diligence and a solid plan. At the same time, you will also require an LMS that enables you to associate point-based rewards with as many learner actions as you want.

Badges

Badges are perhaps one of the most common gamification features used by learning administrators.

When a badge system is implemented, a learner is rewarded with a colourful badge whenever they complete a certain module or achieve something extraordinary.

When looking at the badges feature in an LMS, look for the ability to customize badges. This way, you will be able to create custom badges for specific activities that you think your learners should perform in order to achieve better results.

Levels

Another popular gamification feature, levels offer an easy and straightforward way to introduce a simple gamification element to your training experience.

Popular learning apps, such as the language learning app Duolingo, have used this feature beautifully to incentivize learners to keep moving forward with their chosen course and ultimately boost completion rates.

When looking at the levels feature, make sure you enquire about the ability to display the “big picture” of the course to the learner. This way, they will be able to not only see how far they have come, but will also be able to see how far they have to go.

Leaderboards

Another popular gamification feature, leaderboards don’t just incentivize learners with friendly competition, they also enable organizations to identify top performers and individuals that can become future managers.

With that said, leaderboards are usually paired with point systems. Therefore, you must first integrate a point system with all the relevant online activities that your learners can perform in the LMS and then think about introducing a leaderboard feature.

Choosing the Right Blend of Features and Utility

gamification LMSWhile most learning management systems do offer these features, they may not be designed the same way in each product. Your goal should be to pick a learning management system that offers all of these features, without the presence of a complex user interface.

Of course, budget is also a significant consideration. The more features offered by an LMS, the more it is likely to cost. If possible, use an LMS that lets you add features as your budget permits.

Chances are, you will not require all of these features at once. In the beginning, you may be using one or a combination of two features in your course. However, when picking an LMS, it is best to think about your future training needs and find a tool that can not only support your present training initiatives, but can also be scaled up as your organization grows.

Choose Your LMS Wisely

Technology has revolutionized almost all areas of our lives. This revolution has led to the development of habits that have never existed before. When it comes to training, regardless of the level, it is important to address and account for the newly developed learning habits and styles of modern learners who are heavily influenced by digital technology.

Points, badges, levels, and leaderboards may be some of the most basic gamification features that you can employ for your training experience, but there is no doubt that they will add a much-needed element of healthy competition to your training experience.

Choose an LMS with these four features and your training programs will be full of successful learners.

The post Choosing A Gamification LMS: Features To Look Out For appeared first on Simple Programmer.

]]>
ADHD & Programming (My Story With ADHD) https://simpleprogrammer.com/adhd-programming/ Thu, 16 Jan 2020 15:00:34 +0000 https://simpleprogrammer.com/?p=35509 Technically, I have ADHD. I don’t even know what that means, really. I’ve suffered a long time with ADHD, but, somehow, I managed to turn it into my superpower and become a REALLY good programmer doing that. Programming is not easy. It requires commitment, logic and, most of all, FOCUS. How do you come about...

The post ADHD & Programming (My Story With ADHD) appeared first on Simple Programmer.

]]>
Technically, I have ADHD. I don’t even know what that means, really. I’ve suffered a long time with ADHD, but, somehow, I managed to turn it into my superpower and become a REALLY good programmer doing that.

Programming is not easy. It requires commitment, logic and, most of all, FOCUS.

How do you come about learning and becoming a programmer if you suffer from ADHD? #adhd #programming #programmer

This is what we’re going to be talking about in this video.

[responsive_video type=’youtube’ hide_related=’0′ hide_logo=’0′ hide_controls=’0′ hide_title=’0′ hide_fullscreen=’0′ autoplay=’0′]https://www.youtube.com/watch?v=FnHfkKlLga8&t=11s[/responsive_video]

Transcript Of The Video

John Sonmez: Today we’re going to be talking about ADHD and programming. I know a lot of programmers, a lot of you guys have ADHD. I’ve been diagnosed with ADHD, and I’ve written some articles about it. I’m going to give you some strategies for dealing with ADHD as a programmer, and tell you how you can utilize this to make the most of this.

I’m John from SimpleProgrammer.com. On this channel, we teach you personal development, we teach you soft skills, we teach you how to advance your career and to become a better developer to make more money, and the things that other people don’t talk about in the tech industry. Click that subscribe button to join us and get a weekly video about your career.

I came across your article the other day about ADHD on your website. As a creative musician, photographer, and videographer, I had been involved in front web development for about 12 months now, with a bit of freelance on the side too, so I know enough to create projects, et cetera. In your experience, would you say that when put on the spot with the technical tasks to do with programming, you experience a much different mental state when compared to, say, being involved in a creative task?

Let me tell you guys first about my ADH story. As a kid, I was diagnosed with ADHD. As a kid, I basically got kicked out of preschool for climbing up the walls and pulling a girl’s hair. I was medicated, right? I was given Ritalin. It calmed me down to some effect, right? I was still kind of a crazy kid. But looking back on it now, I was just a boy. I was just a kid, and kids act up and act out.

There’s something going on, right? With me. I was a little bit different, okay? In the sense that I was very much exhibiting the behaviors of not being able to control my impulses, right? Of getting obsessed with things at the micro. Or being lazy and procrastinating, and not being able to will myself to do things that I wanted to do. I lacked the self-control. But again, it’s the part of your brain, the prefrontal cortex that hasn’t developed yet.

I struggled with this throughout school. In fact, what I did was at one point though, I didn’t want to be medicated. I knew this from a young age. I think by the time I was like seven or eight, I basically refused to take the medication. I spit it out. I was not going to be medicated.

But finally, about the time I got to high school is when I started to develop some skills to manage this, right? I learned that what I could do… Because I was unorganized, so I could actually become meticulously organized. In fact, nowadays, people ask me to help organize their stuff because I’m so organized, because it’s a skill that doesn’t come naturally to me.

What I learned in life, and I think this is just a valuable thing, is that just because you’re born with some kind of a disadvantage, doesn’t mean that you can’t turn that around and it could become your greatest strength. A lot of people say to work on your strength. I say to on your weaknesses. Why? Because your strengths you take for granted.

So what I would say with this is in general, right? If you’re a programmer dealing with ADHD, that don’t think of this as something that is going to hinder you, right? In fact, don’t even think of the diagnosis. Don’t classify yourself as ADHD. There’s no such thing as ADHD, but ADHD is my superpower. Why do I have that conflicting viewpoint? Because I won’t identify that as a drawback to myself. Just like maybe a disabled person would say, “I’m not disabled,” right? Because they don’t want to be identified. They don’t want to be classified by that. It’s the same thing here.

The point is that there’s some characteristics, some attributes that people are labeling as ADHD that I have that maybe you have. The way to deal with that, okay, is to focus, is to learn to focus, is to train yourself to put processes in place.

I have checklists. I have processes on my wall, on my board. I run a very tight ship in order to keep myself focused and keep myself on task in order to overcome some of these things. And I’m able to hone that energy, I’m able to use that. And I kind of think of it as like Cyclops with his visor, right? He’s got this… It shoots everywhere, but he puts that visor on and he’s able to focus it. So it’s the same thing here.

As far as programming, as far as the difference between creative tasks and doing programming and technical tasks, one way I approach it is, and this is perhaps why I like clean code and writing good code is because I approach all programming as a creative task. To me, it’s like writing, it’s like an art form, because I’m doing the best I can, not just to solve this program or this problem technically, but to make it as expressive as possible, right? Try to express the intent within the code to name things right. To define the structure of the code where it feels like art. To me, good code is art, right?

I think that’s really what I would recommend as a developer if you’re struggling with ADHD, is make it into a creative thing. It already should be. I mean, it really is a creative discipline. But make it even more so, right? Realize that this is art, that this is a creative experience. And yes, sometimes you’re going to bang your head against the technical and the focus part of it, but you have to develop the discipline.

As a person who is diagnosed with ADHD, the biggest skill that you’re going to develop in life is discipline. I have gone from a completely lazy, procrastinating person to perhaps one of the most fucking disciplined people that you will ever meet in your life. I do crazy shit. I mean, I run fucking marathons, run 40 to 60 miles a week while going to the gym two hours a day, three times a week. Maintain my physique, eating one meal a day.

But I’m not using ADHD as a crutch. I’m not using it to hide behind. Instead, what I’m doing is I’m saying, “Okay, well, because of this, I have learned to become disciplined to a point where other people have not.” It has forced me. Because if I want to be successful and I want to operate in this life, I have to overcome these tendencies. So I have to develop the discipline that no one else has ever developed. That can really help you.

I will talk to you guys next time. Take care.

The post ADHD & Programming (My Story With ADHD) appeared first on Simple Programmer.

]]>
History of the Internet: Part 21 – WikiLeaks and Julian Assange https://simpleprogrammer.com/history-of-the-internet-part-21-wikileaks-and-julian-assange/ Mon, 11 Nov 2019 15:00:49 +0000 https://simpleprogrammer.com/?p=34735 Welcome back to the history of the internet. In the last few episodes, beginning with “Part 17 – Surveillance, Cryptography, and Free Speech,” we have been telling a number of stories regarding the battles between a variety of establishment and anti-establishment figures. In “Part 18 – Free as in Freedom,” we learned about the beginning...

The post History of the Internet: Part 21 – WikiLeaks and Julian Assange appeared first on Simple Programmer.

]]>
Welcome back to the history of the internet. In the last few episodes, beginning with “Part 17 – Surveillance, Cryptography, and Free Speech,” we have been telling a number of stories regarding the battles between a variety of establishment and anti-establishment figures.

In “Part 18 – Free as in Freedom,” we learned about the beginning of the Electronic Frontier Foundation (EFF), which played a significant role in pressuring the U.S. government to soften its rules on the export of encryption.

In “Part 20 – Global Surveillance: The Hayden Years,” we covered the years that NSA Director Lt. Gen. Michael Hayden served and the growing disputes over the right to online privacy following the 9/11 attacks.

Perhaps the most divisive anti-establishment figure in the 21st century is Julian Assange, creator of WikiLeaks. Recently, he has been indicted by the U.S. government, and special counsel Robert Mueller agreed with Secretary of State Mike Pompeo’s likening of WikiLeaks to a “hostile foreign intelligence service.” However, the site also has many fans all around the world, and no less than the current president of the United States has praised the organization (while he was the Republican nominee).

So is Assange a traitor or a hero? 

We will not be presenting a one-sided argument here. Instead, we give an overview of his life and work on the internet so that you can decide for yourself.

Childhood of Julian Assange

Julian Assange was born in Queensland, Australia, in 1971 after his parents, Christine Hawkins and John Shiption, met at an anti-Vietnam War demonstration the previous year. His parents split soon after, and his biological father had no contact with him until he was 25.

Julian’s surname came from his stepfather, actor and theater director Brett Assange. 

Christine and Brett married after Julian’s first birthday. Julian’s stepfather staged and directed his own plays while Christine worked on costumes, set design, and puppetry. Together, the Assange family regularly traveled from place to place. “Most of this period of my childhood was pretty Tom Sawyer,” Assange told The New Yorker.

The marriage between Brett and Christine did not last, and Brett left the family when Julian was 7 or 8 years old. Christine’s next relationship was with musician Keith Hamilton, and together they had a baby named Jamie. But Hamilton was part of the fraudulent new age group Santiniketan Park Association, also known as the Family. This group was led by Anne Hamilton-Byrne, who conned her followers into believing she was the reincarnation of Jesus Christ.

Assange’s account was his “mother had become involved with a person who seems to be the son of Anne Hamilton-Byrne, of the Anne Hamilton-Byrne cult in Australia, and we kept getting tracked down, possibly because of leaks in the Social Security system, and having to leave very quickly to a new city, and lived under assumed names.”

Assange was given a Commodore 64 as a present when he was 13 or 14 and taught himself how to write code. He found computers to be easier to work with than humans; where humans had complex emotions, computers were always predictable.

The Commodore 64. Photo by Evan-Amos, Public Domain 

In 1987, he got his first modem, used a bulletin board system to make connections with Melbourne’s underground hacking scene, and adopted the pseudonym “Mendax.” Around this time, Assange was arrested at his girlfriend’s house on suspicion of computer-hacking offences. His computer was seized, but police did not find any criminal evidence, and he was let free.

Despite this scare, he became more deeply immersed in hacker culture. Assange and two other hackers, “Prime Suspect” and “Trax,” dubbed themselves as “International Subversives” and produced a magazine that was shared between just the three of them.

Together with his hacker friends, Assange committed many computer crimes, breaking into networks belonging to the U.S. Department of Defense and into the Los Alamos National Laboratory. During this period, they honored their own code of ethics “Don’t damage computer systems you break into (including crashing them); don’t change the information in those systems (except for altering logs to cover your tracks); and share information.”

The Australian Federal Police responded by setting up Operation Weather to investigate and apprehend the mysterious subversives. The lead investigator told The New Yorker “Julian was the most knowledgeable and the most secretive of the lot. He had some altruistic motive. I think he acted on the belief that everyone should have access to everything.”

Assange married his girlfriend, and they had a baby named Daniel, but she left him when he turned 20, shortly before he was caught by the Federal Police. While awaiting trial, he was hospitalized with depression.

1996 Trial of Julian Assange

County Court Victoria. Photo by Canley, CC BY-SA 4.0

The trial was held in Melbourne’s Victoria County Court. Assange pleaded guilty to 24 counts of illegal hacking; however, he never acknowledged the seriousness of his misconduct, instead thinking of himself as more of a victim than a perpetrator.

Despite facing a potential sentence of 10 years in prison, during the trial he was so distracted by prosecution lawyer Andrea Pavleka, whom he described as “tall, slender and long legged,” that he turned up at court with flowers for her. Assange’s defense lawyer, Paul Galbally, felt obliged to point out “She doesn’t want to date you, Julian. She wants to put you in jail!”

Judge Leslie Ross told Assange: “I accept what your counsel said about the unstable personal background that you have had to endure during your formative years and the rather nomadic existence that your mother and yourself were forced to follow.” Assange was spared jail but warned any further hacking offenses would result in incarceration. He was fined $2,100.

Believing that his “look/see” hacking was a victimless crime, he told the Judge “Your honour, I believe the prosecution has made several misleading claims in terms of the charges and therefore I elect to continue this defence if Your Honour would so let me.” Judge Ross replied “No, you have plead guilty, the proceedings are over.”

Assange subsequently worked on his website, Best of Security, and started writing open source software. In the years 1997-2000 Assange worked with Ralf P. Weinmann and Suelette Dreyfus to create a deniable encryption system known as Rubberhose. The website explained “if a hard drive is seized, neither mathematical analysis nor physical disk testing can reveal how many aspects actually exist.” 

In 2006, Assange began regular short posts on his blog iq.org and began working on the much bigger project that he would become synonymous with.

WikiLeaks

In 2006, Julian Assange launched WikiLeaks as a nonprofit organization publishing exposés. The idea was inspired by the whistleblowing actions of Daniel Ellsberg that we covered in Part 17. Assange even tried to recruit Ellsberg as an adviser, but Ellsberg declined because he doubted WikiLeaks’ ability to protect its sources.

With online encyclopedia Wikipedia being the world’s most popular nonprofit website, WikiLeaks was given its similar name to capitalize on the inevitable confusion between itself and Wikipedia.

WikiLeaks began by describing itself as an uncensorable Wikipedia, but later in 2007, it removed mention of Wikipedia and stated its intended aim to be an “uncensorable system for safe mass document leaking and public analysis.”

The user-editable element of the site was soon abandoned, as Assange discovered this level of openness made it too easy for dangerous and incriminating information to get posted on WikiLeaks. However, the concept of allowing anonymous submissions has remained throughout its history.

The rationale given for publishing secret information was “transparency in government activities leads to reduced corruption, better government and stronger democracies.”

Another early associate of WikiLeaks was John Young, creator of the cryptome.org site that “welcomes documents for publication that are prohibited by governments worldwide.” In 2007, Assange contacted him to celebrate his haul of secret information:

“We have all of pre-2005 Afghanistan. Almost all of India fed. Half a dozen foreign ministries. Dozens of political parties and consulates, worldbank, opec, UN sections, trade groups, tibet and falun dafa associations and … russian phishing mafia who pull data everywhere. We’re drowning.”

The first publication to prompt a significant political change was Kenya: The Cry of Blood – Report on Extra-Judicial Killings and Disappearances, a 110-page report by the international risk consultancy Kroll, on corruption in Kenya. This report was originally commissioned by the Kenyan government and submitted in 2004, but the government failed to make it available to the public, and the investigator John Githongo fled to Britain in fear of his life. 

Reporters at the The Guardian were shown the report and first published the allegations in August 2007. Then WikiLeaks published the full report in November 2008. Julian Assange won an award for this report from Amnesty International

WikiLeaks’ battles with the Church of Scientology, following its publication of a secret Scientology manual, were widely reported at the time. But for every story that attracted global attention, there were many that gained very little interest. 

For example, Assange hoped to bring in big money by auctioning exclusive time-limited access to thousands of emails of a speechwriter for Hugo Chavez and was dismayed when he didn’t receive a single bid. Part of the problem was that such a large amount of information takes a long time to assess before anyone knows whether it contains an interesting story.

Bringing Down the Banks

The next big story was the tax dodging activities of some of the clients of Swiss bank Julius Baer. A court in California heard from Julius Baer that WikiLeaks was guilty of “unlawful dissemination of stolen bank records and personal account information of its customers.” However, organizations such as the American Civil Liberties Union, the Electronic Frontier Foundation, and many publishing companies claimed it was legitimate free speech. For his trouble, Assange won another award, this time from Index on Censorship.

What most differentiated WikiLeaks from newspapers and other media organizations was its ability to evade or ignore the numerous attempts to censor it. While mainstream media was subjected to gag orders preventing them from publishing big stories, WikiLeaks dismissed all threats and published full details. As an online only organization with servers in many countries around the world, it could not be shut down no matter how many powerful enemies it made.

In Iceland, Kaupthing Bank was taken over by the government due to the financial crisis. In July 2009, WikiLeaks published a confidential 210-page document listing their exposure to loans of up to 1.25 billion euros. Icelandic television was barred from publishing these details due to the first and only gag order in Icelandic history but gave out the link to WikiLeaks instead.

Soon Assange and his colleague Daniel DomScheit-Berg found themselves on TV, and they urged Iceland to become much more open. Member of Parliament Birgitta Jónsdóttir

was a strong proponent of this view and argued for Iceland to become a “Haven of Freedom of Information.”

Julian Assange and Daniel DomScheit-Berg share a joke at the Chaos Communication Congress,
Berlin, December 2009. Photo by andy mcgee, CC BY 2.0

WikiLeaks endorsed the International Modern Media Institute and a parliamentary resolution that was unanimously adopted by the Icelandic Parliament aiming to make Iceland a journalistic safe haven.

Birgitta Jónsdóttir. Photo by Pirátská strana 

Pfc. Manning: Source of Military Secrets

Private Manning in 2002. Photo by United States Army, Public Domain

Up to the start of 2010, WikiLeaks proudly touted “we have an unbroken record in protecting sources.” For the purposes of legally protecting both the source and itself, WikiLeaks is designed such that it usually does not know the identity of its sources.

The most famous (or infamous, depending on point of view) source in the history of WikiLeaks is Chelsea Manning, then private first class (Pfc.) Bradley Manning.

After the 9/11 attacks, the mindset in the U.S. Army and intelligence services changed from a need to know to a need to share. Manning was stationed at Camp Hammer, 40 miles east of Baghdad, Iraq, and finding life very difficult. Some of the officers considered Manning to be mentally unstable. His (now, “her”) supervisor described Manning as someone who suffered from a lack of sleep, was addicted to soda, and kept jumping up and down.

For safety reasons, Manning was barred from owning live ammunition and recommended for an immediate discharge, but due to a shortage of computer intelligence analysts, she was kept on and had access to hundreds of thousands of classified documents.

Manning first contacted Assange online in November 2009 and told him that she had huge amounts of classified information to send to him but was unsure whether to proceed, not knowing for sure whether it was really him or whether he could be fully trusted. It took four months before Manning was confident that the words printed on her computer screen were really coming from Assange. She talked to her boyfriend, Tyler Watkins, about her dilemma in January 2010, but the couple broke up soon after.

On Jan. 8, 2010, WikiLeaks tweeted that they were in possession of an encrypted video of “US bomb strikes on civilians” and requested access to supercomputer time in order to decrypt it. It is unknown how the video was decrypted, but on March 21, 2010, Assange showed the video to Guardian investigations editor David Leigh, who described it as one of the most shocking things he had ever seen. Assange told him he was going to edit the video before releasing it.

Knowing the huge risks involved, WikiLeaks ceased all contact with Manning after receiving the classified files. But ironically, this ended up creating bigger problems for them all.

Apache Gunship Video

AH-64D Apache Longbow. The type of helicopter used in the attack.
Photo by Tech. Sgt. Andy Dunaway – www.army.mil (via internet archive) Public Domain

On April 5, 2010, at the National Press Club, Assange premiered the first of the materials that were gained from Manning: A video of airstrikes from an Apache helicopter on Iraqis in Baghdad on July 12, 2007. These attacks resulted in the deaths of two innocent journalists from Reuters, and when told via radio that children had also been hit, the pilot replied “It’s their fault for bringing kids into a battle.”

The original name of the video was going to be “Permission to engage,” but Assange later decided on the much more provocative title “Collateral murder.” Assange told the assembled press: “The rules of engagement are wrong. Deeply wrong.”

Victims Namir Noor-Eldeen, war photographer (left), and Saeed Chmagh, driver (right).
Photos courtesy of Committee to Protect Journalists 

Amy Goodman from Democracy Now! called the video “absolutely chilling.” The New York Times (NYT) criticized WikiLeaks for producing anti-war propaganda that failed to point out the existence of an Iraqi with a rocket-propelled grenade. Stephen Colbert called the editing “emotional manipulation,” and U.S. Defense Secretary Robert Gates concurred “These people can put out anything they want, and they’re never held accountable for it.”

Overall, WikiLeaks probably failed to get the mainstream media response it hoped for, but it was successful in gaining massive publicity, debate, new supporters, and around $100,000 in donations over the next three days. Assange became famous overnight and told everyone there would be much more to come.

Investigative reporter Mark Davies realized that WikiLeaks could be the story of the year and tracked down Assange at the Oslo Freedom Forum later that month, where Assange gave a talk on censorship in the West. Davies proposed that WikiLeaks join up with The Guardian and The New York Times. The benefits to WikiLeaks would be much more exposure and also a degree of legal protection. Assange agreed, telling Davies he would create a website hosting the files, and gave him a password to use in order to access the material.

Webchat With Adrian Lamo

The late Adrian Lamo. Photo from 2001, public domain

Manning’s mental health problems continued, and on May 7, 2010, there was an incident where Pfc. Manning punched her female supervisor in the face. Manning was demoted to working in the mailroom pending discharge for “adjustment disorder.”

With all contact to WikiLeaks ceased and nobody to talk to about what she had done and why, Manning saw a sympathetic Wired article about Adrian Lamo, who was convicted of cracking The New York Times network and causing criminal damage in 2004, and decided to take a big risk. On May 21, 2010, she contacted him, using the handle “Bradass87” instead of her real name, and soon began confessing her actions to him.

Concerned about the release of this information that could possibly constitute a big threat to national security, Lamo deliberated on whether to report this to the Army’s Criminal Investigation Command. He later described it as a “Kobayashi Maru” moment—a test with no winning outcome, and argued:

“There was no option to interdict just the documents and put him merely in touch with counseling. There was no way to be both kind to [Chelsea] and mindful of the potential for harm to people I had never known and would never know which the situation posed. The reader might think there was some more moderate choice that I overlooked but I looked closely, and no such choice existed.”

After reporting to the authorities, Lamo contacted Manning again and gradually solicited more information about her until the authorities were able to identify her. On May 26, Manning was seized by Army authorities and put into pre-trial detention in Kuwait. Lamo also asked Manning several questions about how to get hold of Assange.

Although Assange was able to remain elusive to the U.S. authorities, news of Manning’s arrest was a massive problem for WikiLeaks. It did not know whether Manning was their source, how the authorities had caught her, or whether they would somehow be caught and arrested next. Despite all the precautions they had taken to protect their sources, their reputation for being able to protect them was severely damaged. And although WikiLeaks had a gigantic collection of information, publishing them could mean Manning’s sentence would be increased.

Selected parts of the chat logs between Lamo and Manning were revealed by Wired in June 2010.

The following year, Wired released the logs in full in July 2011.

Court-Martial

Manning’s difficult childhood was reported widely in the media while she was on suicide watch at Quantico Marine Base in Virginia.

Private Manning’s older sister Casey told the court that both their parents, Brian and Susan, were alcoholics. Their mother Susan drank heavily while pregnant, and Navy psychiatrist David Moulton told the court that Manning’s facial features showed signs of fetal alcohol syndrome.

Brian’s job as an IT Manager involved being away from home for weeks at a time, and in 2001, he announced that he was leaving for good. Chelsea moved with her mother back to her hometown of Haverfordwest in Wales. At the age of 17, Chelsea moved back to Oklahoma to live with her father and his second wife.

Chelsea had a job at a photo-sharing software company, but her boss Kord Campbell found that her personal issues were affecting her work, and fired her. Chelsea’s problems were compounded when her father threw her out of his house. Brian did a PBS interview saying Manning didn’t get along with her stepmother; there were arguments about money and following his house rules.

Chelsea was against the Iraq War, according to her school friend Tom Dyer, who said that her opinion in 2003 was “George Bush had no right to send troops there,” but according to her friend Jordan Davis, she is very patriotic and “talked about joining the Army in third, fourth, fifth, sixth, seventh, eighth grade.”

After moving between several temporary accommodations and odd jobs, she wanted to create a better life for herself. Brian told her “If you get into a place at Army, you know you’re going to have three square meals a day; you’re going to have a place to sleep and a roof over your head. And as long as you follow the path, you know, it’s all you have to do.”

The Post 9/11 GI Bill gave Chelsea a route to get into college. She also knew that it would make her father, who had served in the Navy, proud of her. So regardless of whether she supported the war, she agreed to talk with the Army recruiters.

While Manning was certainly in the worse situation at Quantico Marine Base, her friend Julian Assange was busy getting into his own trouble. 

Sexual Assault Allegations

In August 2010, Assange was in Stockholm, Sweden, and had sex with two women, Anna Ardin and Sofia Wilen. They met up with each other a few days later and shared their experiences with Assange. They visited their local police station to ask if they could compel Assange to take a test for sexually transmitted diseases if he did not agree to do so voluntarily. According to Assange’s defense lawyer, Per Samuelson, neither woman filed charges, but a police officer interpreted this inquiry as a sex crime having occurred.

Swedish journalist Donald Boström spent time with Assange and also knew the two women involved. Ardin called him to tell him what had happened and to request that Assange take an HIV test. Boström viewed Ardin as “very, very credible” and confronted Assange with the allegations, which he denied. 

Assange initially refused to take an HIV test, and Ardin and Wilen went to the police again. At some point during the police interview, an officer told them that Assange was to be arrested and questioned about possible rape and molestation. Wilen then became distraught and refused to give additional testimony. Within hours this story was leaked to the Expressen tabloid, which ran the front page headline “Assange hunted for rape in Sweden.”

Assange was outraged by this and responded through the WikiLeaks Twitter account insinuating, without evidence, that the allegations were part of a plot by the U.S. Government:

On Aug. 21: “We were warned to expect ‘dirty tricks.’ Now we have the first one.” 

The following morning: “Reminder: US intelligence planned to destroy WikiLeaks as far back as 2008.”

Assange also gave an interview to Swedish tabloid Aftonbladet on Aug. 22, claiming to have “no idea” who his accusers were. Ardin responded “The charges are of course not orchestrated either by the Pentagon or anyone else. The responsibility for what happened to me and the other girl lies with a man who has a warped attitude to women, and a problem with taking ‘no’ for an answer.”

According to Boström, Assange was “the new rock star” who had been “picking the fruit.” He rubbished the notion that the women were in any way connected with the CIA.

The Guardian writers Leigh and Harding wrote “Assange did often seem to have a restlessly predatory attitude towards women. It contrasted with his otherwise cool demeanor.”

Assange was questioned by detective Mats Gehlin at the Klara police station family violence unit on Aug. 30, 2010, and on Sept. 1, 2010, the director of prosecution reopened the rape investigation.

The case was initially closed on the grounds of insufficient evidence, and he was allowed to leave the country, flying to England on Sept. 27, 2010, but was denied residency in Sweden.

However, the lawyer and politician Claes Borgström believed there was ample evidence in the case and stated he would appeal to a higher-ranking prosecutor.

The story is detailed further in the Australian Broadcasting Channel’s 2012 documentary “Sex, Lies and Julian Assange.

In this episode we have covered the early life of Julian Assange and the early days of WikiLeaks. We’ve seen that Assange had some problems with the law, but this was only the beginning. Join us in Part 22 for Cablegate.

The post History of the Internet: Part 21 – WikiLeaks and Julian Assange appeared first on Simple Programmer.

]]>
The Modern Developer, Part 4: Code Review and Quality Assurance https://simpleprogrammer.com/code-review-and-quality-assurance/ Fri, 27 Sep 2019 14:00:24 +0000 https://simpleprogrammer.com/?p=34380 As a software developer, your job isn’t just to write code. It’s to deliver quality solutions to complex problems.  Is the code you’ve written high quality, allowing the software to do the job it is supposed to? When the software encounters an error, does it handle it gracefully? Is the software secure and performant enough?...

The post The Modern Developer, Part 4: Code Review and Quality Assurance appeared first on Simple Programmer.

]]>

As a software developer, your job isn’t just to write code. It’s to deliver quality solutions to complex problems. 

Is the code you’ve written high quality, allowing the software to do the job it is supposed to? When the software encounters an error, does it handle it gracefully? Is the software secure and performant enough?

There are two processes that are used to measure and raise the quality of a software project: code reviews and quality assurance. Let’s examine each of them and see how you can implement them in your workflow to deliver better results.

Code Reviews

A while ago, I wrote an article about high quality code. There are a few things I would like to revisit in this article:

Self Code Reviews

The first thing to know is that self code reviews are absolutely mandatory.

The second is that there are codebases that are of such low quality and with so many inconsistencies that everyone has given up on them. This means that they are merely patched up and developed further only when absolutely necessary.

For this type of code base, I’ve created a “lite” version of the code quality checklist from the initial article. I also use this lite version while writing code on the fly.

When I write code, I usually leave out quite a lot of to-do’s to refactor later on. This way, the code reaches an acceptable level of quality, and I don’t have to distract myself from the business logic. Since I’ve started using this list, the to-do’s in my code have gone down significantly.

Here is the checklist:

  • Does the new code follow the guidelines and style of the file you are editing ? – Even if the convention is old, ugly, and not optimal, if you don’t have the time to fix everything, keeping with the current convention is most likely a better approach than introducing a second style.
  • Are the entry points as restricted as they should be? – Entry points to a module/class should have as many checks as they need. If you guarantee that all of your private functions and business logic functions work with clean parameters, this will remove a lot of boilerplate code and will make the crucial functions much smaller and easier to read and debug.
  • Are the variable and function names descriptive? – Even if they are long, this is a much better solution than having small, cryptic names. For “rotting” code bases, this helps with reading the code in the future. For newly developed code, a name that is long will eventually help you choose a good alternative, since you can rework the name itself to be shorter but with the same meaning.
  • Is the error checking strict enough and logged? – Every error must be logged. Additionally, you want to make as many checks as possible—as long as they don’t overlap. Checking the same thing twice makes no sense. Try to handle multiple cases with a single check.
  • If an error occurs, will I be able to understand the entire problem from a single line? – When an error occurs, the log should be so descriptive that you don’t need additional debugging information to understand what went wrong.

Team Code Reviews

The more common approach to code reviews is to have them performed by someone from the team. The process itself depends on the company and may vary, but the important thing is that feedback must be given.

With regard to the reviewer, they must give constructive feedback. The reviewer should know what the code is supposed to do. A hallway-code review—when you get feedback on a piece of code from a random colleague—is an exception, but this is rarely used.

When it comes to you, the reviewee, always assume good intentions. Chances are both you and the reviewer want to deliver the highest quality code possible. Do not take any criticism about your code personally—you are not your code, and you are not your work. 

Don’t forget that the purpose of the code is to solve a problem. If you disagree with the reviewer on something, approach them and have a short discussion. I suggest you skip the email, unless it is company policy, since verbal communication is better when it comes to solving these kinds of misunderstandings.

Code Review Software

There are tools that do code review automatically. Although they can catch some bugs and follow rules such as “no function name longer than XY symbols,” they aren’t that useful … yet. 

To me they are extended code and style linters. Even though some of them can point out cyclomatic complexity issues, they can’t catch business errors. Feel free to use them, but they can’t replace the self code review or the team code review.

Don’t Skip Code Reviews

Although time concerns and pressure to release as soon as possible may tempt you to skip code reviews, this is always a bad idea. 

Software is a team effort, and as a team it is your responsibility to deliver the highest quality software you can. Code reviews are one of the simplest ways to improve the quality of your work and verify the success of the feature you are releasing. 

Remember that even a 10-minute self code review can end up catching business-critical bugs that would be shipped into production. Don’t compromise quality. Do code reviews.

Quality Assurance

Quality assurance (QA) has passed through many trends. The industry is heading toward automated testing, but interestingly enough, there are still quite a few positions open for manual testers.

Let’s break down some of the most popular QA approaches and see how each one raises the quality of the software. 

Quality Assurance Done by the Developers

This is when a developer, usually someone from the team, tests the feature for correctness, acting as an end user. This is one of the oldest approaches, partly because management doesn’t want to hire manual QA personnel. The end results are usually pretty poor.

Most of the time, developers have enough on their mind already and won’t treat the testing with the same level of detail as their development tasks. In theory this shouldn’t happen since it’s unprofessional, but in practice this is exactly what happens.

Nowadays, the only legitimate way testing is done by developers is internally between the devs, and often by the team leader, before a feature is pushed for real QA. 

Manual QA

In the oldest form of QA, one or more people manually test the software. Software with Graphical User Interface is primarily tested manually. Although its market share has gotten smaller, the predictions that it would disappear completely have so far been wrong. 

Although quality assurance done by humans will not be perfect, humans learn—unlike automated tests. An experienced quality assurance specialist who has tested the system for months will often catch issues and cases that the developers and designers haven’t considered. Knowledge about the system and how it’s used is worth its weight in gold.

Since QA is done manually, some of the most useful user experience and usability feedback can come from the experienced quality assurance engineers. When this feedback comes, use it and don’t dismiss the QA engineer when they have ideas about improving the product.

Automated Tests

Automated tests are great! Write them once, and then run them as many times as you need and for whatever reason. 

Want to check your code before committing? Sure! Want to run regular tests on production to ensure that the system is running correctly? No problem! How about running them automatically after every merge in master? Let’s do this!

Use cases for automated tests can be numerous. The examples above are just a small fraction of them. But why aren’t automated tests done by everyone? 

Unfortunately, as great as automated tests are, they come at a considerable price. Since automated testing is done with code,you have to do quality assurance and testing on the tests themselves. Furthermore, any change in the software will require change in the tests.

In short, automated tests require significant resources to function. This is why they are absent from so many companies.

For me, automated tests are worth the investment if done correctly. My checklist for writing automated tests is as follows:

  • Have automated tests for business-critical features.
  • Make them as simple as possible even if the code is ugly.
  • Do rigorous testing on the tests to ensure that they work in all use cases and don’t return false positives.
  • Start implementing the tests when a feature is nearly in QA to minimize the number of tests that will be thrown away due to major code or functionality changes.

Automated tests can save hundreds of hours in debugging for big projects. They are a big advantage when done correctly. The only real downside is they require resources allocated to them constantly. At the end of the day, automated tests add a lot of value to a project, so you should advocate for them as a developer.

Functional and Nonfunctional Tests

So far we have categorized tests according to who or what executes them.Now we’ll explore some types of tests focusing on what is being tested. 

There are two main categories: functional tests and nonfunctional tests.

Starting with the former, functional tests are those that test what the system does. Examples include: 

  • Unit testing – typically performed by the programmer and tests the smallest components of a software product, such as functions and classes.
  • Integration testing – examines whether the different modules and subsystems work well together and communicate correctly. It’s especially effective for distributed applications.
  • Acceptance testing – performed by the client or the product owner and tests the entire functionality of the system. Successfully passing acceptance testing usually means the system is close to a production release.

Despite being tempted to skip unit and integration tests, most of the time, skipping them will slow you down more in the long run. Don’t try to cut corners—do things properly so once the project is released, you will have very light maintenance instead of having bugs haunt you and bring your productivity down into the next one or two quarters.

On the other hand, nonfunctional tests are those that check how the system should perform certain tasks:

  • Performance testing – examines the speed in which the system will work under normal load.
  • Stress testing – checks how the system will behave when there are many concurrent users.
  • Recovery testing – reveals whether the system can recover from a crash. Usually, the processes start running without many problems, but the storage—file system and databases—will go into recovery mode. Sometimes, the only way to get the system operational will be by using a backup.
  • Security testing – If you can afford a security audit, have one. If you can’t, there are a lot of lists with the most common vulnerabilities for a given technology, e.g., web. Make sure that you don’t have these security holes, and your system will be better off than 95% of all software. 

Functional tests tend to take precedence over nonfunctional tests in most organizations. This is quite unfortunate because each type of test is made to catch specific errors, and projects usually encounter all manner of errors sooner or later. 

Even if the resources allocated for QA aren’t sufficient, all the main types of tests should be performed before the system goes into production.

Don’t Forget Functionality Testing

A feature can have no bugs, work fast, and be user-friendly, and still not be a good feature. More important are questions like: Does it perform the task that it is supposed to? Is it useful to the system? Does it add value?

All too often, features don’t bring nearly as much value as they could if they went through a couple of feedback loops with the intended users. This isn’t something that can be solved with a code review or by a great QA engineer. This is something that exists at a company-culture level.

Software Quality Is a Journey, Not a Destination

As long as software changes, keeping the quality up is a constant battle. It won’t always be straightforward, and it won’t always be easy, but it is a necessity that keeps the project vitalized and with low technical debt.

Doing self code reviews is one of the cheapest and most effective ways to deliver higher quality software. Similarly, the use of automated linters and style checkers will help you concentrate on the business logic.

But even beyond that, involving your colleagues will help you deliver a better architectured code, and doing quality assurance, both manual and automatic, will reduce the number of bugs that make it to production.

As a software developer, always remind yourself that keeping the quality of the code high is just as important a part of your job as adding new features.

The post The Modern Developer, Part 4: Code Review and Quality Assurance appeared first on Simple Programmer.

]]>
Tips on How To Deal With Programming Anxiety https://simpleprogrammer.com/programming-anxiety/ Mon, 27 May 2019 14:00:17 +0000 https://simpleprogrammer.com/?p=32040 Anxiety in the workplace affects everyone, but sometimes it feels like programmers have it the worst. We’re underpaid, overworked, and misunderstood by nearly everyone in the company. Projects pile up quickly, creative direction changes constantly, and since no one else in the company understands our job, they’re unaware of or unsympathetic to how much stress...

The post Tips on How To Deal With Programming Anxiety appeared first on Simple Programmer.

]]>

Anxiety in the workplace affects everyone, but sometimes it feels like programmers have it the worst.

We’re underpaid, overworked, and misunderstood by nearly everyone in the company. Projects pile up quickly, creative direction changes constantly, and since no one else in the company understands our job, they’re unaware of or unsympathetic to how much stress they really cause.

Because of this, in 2017, the software industry posted a higher employee turnover rate than any other industry. And while this is terrible, it’s not really surprising. Being stressed and overworked is essentially a stereotype of programming culture. But it doesn’t have to be that way.

To combat the status quo and give programmers ways to combat stress in a healthy way, here are a few tips on how to deal with programming anxiety. These tips will allow you to take control of your mental well-being and fight the onset of the many health problems that can arise from chronic stress.

Ask for Help

Projects can pile up quickly, turning an easy week into an absolute nightmare in a matter of minutes. And when requests are flooding your inbox, it can be overwhelming. You might feel like you’ll never get it all done.

That’s why it’s important to call upon friends and coworkers for help. This could mean having a colleague assist with your work responsibilities. Alternatively, it could involve asking a friend or family member to help you with outside-of-work duties. Having a support system is crucial to overcoming anxiety.

Programmers, especially, are prone to ignoring this tip and digging themselves into a hole. Because we take such pride in solving problems and being someone who can be counted on to handle difficult tasks, asking for assistance can feel like weakness.

It is important to remember that’s never the case. Using your coworkers as resources will help you personally accomplish more as well as improve the overall quality of the project.

Set Honest Deadlines

Another way to keep your mountain of work somewhat manageable is to set honest, achievable deadlines. While that may seem obvious, most people fail to adhere to this idea.

For instance, if you’ve already got a full plate and your employer asks you to do more, lay out an accurate timetable for your work. Don’t just tell them a timetable that they’ll be happy to hear.

By doing this, you’ll save yourself from extra stress, since you won’t stretch yourself even thinner and potentially produce rushed, mistake-filled work.

You’ll also save your reputation with higher-ups because while others are giving unrealistic estimates that they will ultimately fail to meet, you’re consistently delivering quality code on time.

Don’t Suppress Your Feelings

This is somewhat connected to asking for help, as that is one way to make your feelings of stress and anxiety known to others. But sometimes, we might suppress our feelings for other reasons, too; for instance, when we disagree with something.

Simply suppressing your feelings of anxiety doesn’t help anyone, and voicing your concerns in certain situations can help ensure that the entire process runs smoothly.

Rather than fighting anxiety and trying to keep it hidden, it’s best to embrace it and even talk about it to deal with this potentially debilitating problem. However, that doesn’t mean allowing yourself to be consumed by stress.

When you start to feel stress, you shouldn’t push back and pretend it isn’t there. Instead, you should find the source of your stress and work toward resolving that issue.

Many times, the overwhelming stress we feel isn’t about just one thing; it’s the sum of all the stress we’ve been ignoring.

Which is why meeting anxiety head-on and dealing with it is so crucial.

For example, if you knew there was a problem in your code early on, you wouldn’t wait until you made 50 mistakes before trying to correct any of them. Instead, you would correct it immediately knowing it would make life easier down the road. The same goes for those feelings you have bottled up.

Exercise Regularly

One of the best ways to deal with problems with anxiety is to resolve them through regular exercise. Because while exercise is important for your physical health, it’s also imperative for maintaining your mental well-being.

This is because physical activity releases endorphins that produce what’s often called a “runner’s high.”

This “high” produces pain-relieving and anxiety-reducing effects by both flooding your body with endorphins and utilizing the endocannabinoid system (ECS) to regulate mood and decrease anxiety during and after exercise.

The relationship between exercise and the ECS is a recent discovery, but that finding is why many athletes often supplement their workouts with hemp-derived cannabidiol (CBD) oil products like topical creams and gummies.

Since CBD affects the ECS in a similar fashion to exercise, adding it to your workout or morning routine can be a great way to keep yourself focused and stress-free.

However, simply getting outside and enjoying nature can be enough to elevate your mood, according to a Harvard Health article. There’s no need to bust out the supplements or even break a sweat. Just a little bit of movement and sunlight can make a huge difference.

Take a Break

As great as all these tips are, most of them can’t be done while you’re waist-deep in work. That’s why we saved the most important lesson for last: Take a break every once in a while.

Unless you’re writing code for the Avengers, your job most likely isn’t a life-and-death situation. That means that no matter how important those deadlines seem or what the powers-that-be tell you about work ethic, you’re no good to anyone if you’re filled to the brim with anxiety and exhaustion.

Put your system to sleep for a second, get up from your desk, and think about something else for five minutes whenever you feel the burnout is setting in. Once you feel like your head’s a little lighter, go back in and tackle your work with a renewed sense of energy.

Create a Positive Outlook

While these tips may not remove your entire pending workload, they can hopefully inspire you to take control of your mental well-being and never accept stress as a natural state of living.

You have the power to shape your world through the way you react to difficulties. By practicing these tips, you can create a more positive outlook.

Combining these suggestions and adding your own methods for mindfulness and self-actualization can help you stay on top of anxiety and stress, keeping them from creeping up on you.

The post Tips on How To Deal With Programming Anxiety appeared first on Simple Programmer.

]]>
Teamwork & Introversion In Software Development https://simpleprogrammer.com/teamwork-introversion-programming/ Thu, 27 Sep 2018 14:00:02 +0000 https://simpleprogrammer.com/?p=30146 Teamwork is definitely one of the biggest factors that CEOs and managers take into account when analyzing their employees. Being able to be part of a team is definitely a key factor when it comes to taking the projects your company needs forward. Teamwork in software development? So… What if you were an introvert? How...

The post Teamwork & Introversion In Software Development appeared first on Simple Programmer.

]]>
Teamwork is definitely one of the biggest factors that CEOs and managers take into account when analyzing their employees. Being able to be part of a team is definitely a key factor when it comes to taking the projects your company needs forward. Teamwork in software development?

So… What if you were an introvert? How could you possibly become a good team player if you consider yourself an introvert? Watch this video and find out!

[responsive_video type=’youtube’ hide_related=’0′ hide_logo=’0′ hide_controls=’0′ hide_title=’0′ hide_fullscreen=’0′ autoplay=’0′]https://www.youtube.com/watch?v=lpVeFybGTno&index=42[/responsive_video]

Transcript Of The Video

John Sonmez: Hey, what’s up? John Sonmez here from simpleprogrammer.com. Hey, I just want to give a quick thanks to one of our sponsors at Simple Programmer which is DevMountain Bootcamp. You should go check them out. The link is in the description. They are a coding bootcamp and they can teach you web development, iOS development, UX design, a lot of good stuff. I get a lot of feedback from a lot of you out there that email me have told me about DevMountain, so I decided to check them out myself. I like what I found. I like their programs. They offer some 12-week intensive programs. They also offer some after-hours programs which I know that some of you will like. Go check them out. You can see the link in the description below, DevMountain Bootcamp. A big thank you to them for sponsoring Simple Programmer.

Let’s talk about some introversion in software development. This is a topic I like to talk about because I like to say that we’re not introverts or extroverts. We’re contextually one or the other and I don’t like labels, but let’s talk about this a little bit here. This is from an anonymous. From Anonymous. Question. Obviously, this is from anonymous because this is about introversion, right? Okay. “When on a job interview, should I hide my introverted personality and confess that I’m not a good team player if they bring the topic or should I fake it until I make it?” I think it’s funny to like—how do you hide your introversion. You could hide the extroversion, but I don’t know if you can hide the introversion. That would look kind of weird. I don’t know how you do that. He says, “Could the technical skills and problem-solving mindset compensate my poor soft skills or they have to be leveraged? Are there companies who respect introverts and let people work on their own or the team player type personality is a must?”

He’s got some more additional info here, but I really don’t need to—I think we can look at it from a couple of things. The first thing I’m just going to say because it sticks out to me is, “Should I confess that I’m not a good team player if they bring up the topic.” No, no. Don’t say you’re not a good team player. Not a good move. Not a good move at all. Being super like—okay, being honest is important. Being genuine is important. Being more honest than necessary—revealing information you don’t need to reveal that’s harmful to you is not being honest. It’s being too damn honest.
That’s not lying, okay? You just don’t have to like I don’t go to the grocery store, and when the checkout lady, when she’s like, “Hey, how was your day?” I don’t say, “Man, I got a hemorrhoid. It’s bothering me.” Right? I don’t say that. She doesn’t need that info. TMI, Too Much Information. Doesn’t need that information or I don’t say, “Man, I got in a fight with my bestfriend.” I don’t like reveal all of that information. I don’t reveal every single weakness that I have, right? I could go on with more details that would be too TMI, right? These are all fake details, by the way. Those would be TMI, but my point is this, is like when you’re job interview, don’t be like, “I’m not a good team player.”

In fact, this is what I’m going to tell you. Be a fucking good team player like there’s no reason at all why you should hide behind this excuse of being an introvert. Now, whether you agree with me or not, I’ve done some videos on introverts versus extroverts and I think it’s contextual. I don’t think—I think that if you take the right person, I think if you take the most introverted, nerdy guy and he’s addicted to World of Warcraft, and you put him in a LAN party with a bunch of people playing World of Warcraft, that guy is going to be the most extroverted son of a bitch that you’ve ever seen. He’s just going to be like all over the place screaming and yelling and having a good old time. Well, I’ll add one more thing to the context, with his buddies who also play World of Warcraft, they’re going to be cracking jokes. He’s going to be having a good time. He’s going to be extroverted in every sense of the world—of the word, of the World of Warcraft. Of the word, whatever. Tongue twister there.

I honestly think that, but that’s beside the point. The point is this. You’ve got a glaring weakness and efficiency. You’re trying to hide behind the mask of being an introvert. You’re saying, “This is just who I am. I’m just an introvert. I’m just a shy guy. I hid behind this mask myself. This is why I’m telling you because I knew this because I said, ‘Hey. Well, I’m just not athletic. I’m just a shy guy. I’m not a good writer. I’m just lazy. I’m just not motivated.” These were things I told myself for many, many years.

Bullshit, bullshit. Total bullshit. It’s not true. These things don’t define me. I define me. I decide who I want to be. You know what those things were and what it is for you? It’s a convenient fucking excuse that excuses you from improving and excuses you from doing what you need to do in life. There’s nothing wrong with “being an introvert.” There’s nothing wrong with the definition of getting your energy from being in solitude or being alone. It’s a formal definition. Like I said, I disagree with it. I think it’s contextual, but regardless. You don’t have to agree with me in that point. There’s nothing wrong with that, but there is something wrong with not learning the soft skills required to become a team player.

I’ve got a book obviously on soft skills called The Software Developer’s Life Manual that you should definitely read. Definitely pick up this book for sure. Work on this stuff, okay? Don’t say I’m not—don’t fake it. Again, fake it until you make it is great, but that doesn’t mean that you just blatantly lie. It just means that—like here’s what fake it until you make it means. You can check out my own video on fake it ’til you make it, but it essentially means this.

It says that you say, “Okay, I want to be a team player and I want to”—I mean I don’t want to say I want to be an extrovert, but I have this vision of myself. I want to be a person who was soft skills and who is a team player, and who get along people and does well on the team. I like my solitude and I like to work alone. That’s cool but I also want to have this attribute. I want to be this. I’m going to start being that part. I’m going to start faking it ’til I make it. I’m just going to start acting that way and being positive about this, and thinking of myself as a team player and honestly believing that and playing that part as an actor until it becomes reality. That’s fake it ’til you make it. Fake it ’til you make it is not bullshitting someone and saying—when they say, “Are you a team player?” you say, “Yeah. I’m a great team player. Awesome. At the same time, don’t say, “I suck at being a team player. Just say like—committing your mind already that you’re going to be a good team player, so then you can honestly answer and say, “Yes, yes. I’m not perfect, but I enjoy working on a team and I I’m constantly working on becoming a better team player, and I’ve made a lot of improvements,” and, you know, all these things that you’re on that path.

Don’t cop out. Don’t say, “Oh, it’s not for me. I’m just an introvert.” Don’t hide behind these masks and these identities. You define who you are. Decide who you want to be and develop these skills. Develop the soft skills. That’s going to be very, very important in your career. You’re not going to get very far in your career or you’re going to be very limited in your career if you don’t develop soft skills, and you got to become a team player. Everything in life requires being a team player. Everything worthwhile in life that you’re going to achieve that’s going to make any kind of impact on your career or your life is going to require you working with other people. You might as well develop and learn those skills.
You can still go in your cave and read your book, and work on your project by yourself and get your alone time. I’m totally cool with that. I do that myself sometimes, but it’s not an excuse. You can’t hide in your cave forever. All right. I hope that helps you. If you have a question for me, you can always me at john@simpleprogrammer.com. If you haven’t subscribed already, click that Subscribe button and click that bell so you don’t miss any videos that come out here on this channel. I’ll talk to you next time. Take care.

The post Teamwork & Introversion In Software Development appeared first on Simple Programmer.

]]>