Practical work: Mentoring activities

code

Each programmer should at least play around (or get confortable) with multiple programming languages and tools, in order to notice the differences between them and be able to choose the one that fits the best for the task they have.

The list is for juniors or for anyone who did not worked with the said languages / tools. Enjoy!

Linux

Python

  • Site: https://www.practicepython.org
  • Book: Learn python the hard way
  • Exercises:
    • Read and write data from/into a CSV file
    • Swap two numbers
    • Plot:
      • A horizontal bar chart
      • A histogram (let’s say money spent daily in the course of a week)

Bash

  • Exercises:
    • Create a script which replaces binary (move original binary, copy the new one over, sync it and make it executable)

C#

  • Exercises:
    • Create a timer and do something on process event
    • Create delegates / events and add them in the code
    • Create a unit test for a public function
    • Create a basic GUI (button, label, progressbar – that increases on timer tick)
    • Use LINQ statement to calculate some specific values based on collection data
    • Encrypt and decrypt a password using Security namespace
    • Create a database and connect to it
    • Use SQL to make DB requests (CRUD)

SQL

C++

  • Exercises
    • Create a library and a new project, link them together (statically, and dynamically)
    • Create a small application (client/server) that uses 0mq to communicate with each other
    • Integrate makefile with the build projects and make it cross-platform
  • Libraries
    • Integrate and use curl, rapidjson, zlib

C++ (QT)

  • Tutorial section: Incorporated in QT
  • Site: https://wiki.qt.io/Qt_for_Beginners
  • Exercises:
    • Create a basic GUI application
    • Create a class with signals and slots, emit a signal on button press that changes the button color
    • Change button color on hover, left click, right click, enter or leave an area
    • Connect to a REST API (JIRA for example)

Tools

  • IDE
    • Pick an IDE
    • Get used to shortcuts
  • Windows / Browser
    • Get used to shortcuts
  • One Note
    • Organize all the things that should be saved with OneNote
  • Postman
    • Get used to postman, test with google maps API / Jira
  • UML (Site: http://plantuml.com)
    • Create a sequence diagram
    • Create a state diagram
  • Sublime/Visual studio code
    • Install sublime and plantUML plugin
    • Generate plantUML diagrams from sublime

Bench / Virtual Machine

  • GDB
    • Learn a few gdb commands
    • Investigate a core dump
  • Valgrind
    • Add valgrind on target
    • Run binary with valgrind and check the results
  • Curl (Example of curl commands here)
    • Use curl command in virtual machine to authenticate to JIRA
    • Use curl to post a json to the server and get back the result

Leave a comment

Your email address will not be published.