Cursuri

All Things JavaScript

Learn why companies are choosing JavaScript as their technology stack to build applications because it can help them reduce man power, cut back on costs and iterate faster. And on top of it, one other major benefit is that it's open source and free to use.
Join us for a three part course on All Things JavaScript:

  • We'll talk about how JavaScript can be used to replace traditional programming languages for building different kinds of software applications.
  • Most of today's apps either mobile, desktop or IoT are connected to some cloud based server for persisting user data or using cloud computing to improve user experience so we have to talk a bit about web development. We'll see how Internet clients (browsers, mobile/desktop apps) communicate with backend cloud services and how JavaScript fits into the picture.
  • See it in action. After all this praise it's time to see some code. We'll use JavaScript to build a simple notes app that can be deployed to all platforms: web, IOS/Android and desktop (Windows, MacOS and Linux). The app will use a server also built using JavaScript to sync notes across devices.

Difficulty: beginner-intermediate

Format: 3 courses ~ 2h

Dragos Sebestin

Trainer: Dragos Sebestin

PRO BST IT, Senior Software Developer

Coding Pro-Practices

Computers and software are growing and expanding in all of society and life's aspects, from entertainment, to transport, to health. Hardware has continually experienced massive growth, enabling us to carry almost unfathomable power in our pockets, everywhere we go.

Software, however, is not subject to the same leaps in efficiency and performance. Many would argue that the faster hardware gets the lazier developers become and CPU & memory waste becomes more prevalent. We can all think of such a software product.

This course will take attendees on an explorative journey of problem solving using software. As a programming language we'll be using is C++ 17. This language has a two-fold reputation, on one side for performance and efficiency but on the other for memory management issues and lack of libraries. Programming languages and libraries are only tools, and like all tools, it is up to those using them to do so in an efficient manner, to understand their applicability and limitations.

As proficient as one can get at programming, they will certainly be even better if functioning harmoniously as part of a team. Great software is written by teams. Teams are made of people and people are complicated. We'll see how teams interact, what the common pitfalls are and learn how to be a better team player.

The last day of the course will be a workshop; we'll put to use the concepts explored previously. Our goal will be to arrive at a reliable, fool-resistant long-term solution to a real problem, to code like a pro.

Difficulty: intermediate

Format: 3 courses ~ 2h

Gabriel Diaconita

Trainer: Gabriel Diaconita

Caphyon, Senior Developer

Curry On Functional Programming

Can a language whose official motto is 'Avoid Success at All Costs' teach us new tricks in modern programming languages?

If Haskell is so great, why hasn't it taken over the world? My claim is that it has. But not as a Roman legion loudly marching in a new territory, rather as distributed Trojan horses popping in at the gates, masquerading as modern features or novel ideas in today's mainstream languages. Functional Programming ideas that have been around for over 40 years will be rediscovered to solve our current software complexity problems.

Indeed, modern programming languages have become more functional. From mundane concepts like lambdas & closures, function objects, values types and constants, to composability of algorithms, ranges, folding, mapping or even higher-order functions.

In this workshop we'll analyze a bunch of FP techniques and see how they help make our code shorter, clearer and faster, by embracing a declarative vs. an imperative style. Brace yourselves for a bumpy ride including composition, lifting, currying, partial application, pure functions, maybe even pattern matching and lazy evaluation.

Difficulty: intermediate

Format: 3 courses ~ 2h

Victor Ciura

Trainer: Victor Ciura

Caphyon, Technical Lead

HTML, CSS & JS in the Real World

In this workshop, we will cover the basics to get you going on using HTML, CSS and JavaScript. After that, you'll hopefully want to spend more time nitpicking and criticizing a site or web application when you see one. Because doing real work is hard.

Sessions:

  1. Hand-Coding a minimal landing page
  2. Generate a static site with Pug (Jade), Sass and Node.js
  3. DevTools hands-on

Here's what we'll cover:

  • Intro to HTML & CSS
  • DOM and JavaScript
  • DevTools
  • Working with Typography
  • The Box Model
  • Building Forms
  • Performance & Organization
  • Positioning
  • Advanced Selectors
  • Responsive Web Design
  • Preprocessors (e.g. Sass )
  • Transforms, transitions & animations
  • Feature Support & Polyfills
  • Semantics & Accessibility
  • Best practices, testing & debugging

Difficulty: beginner-intermediate

Format: 3 courses ~ 2h

Catalin Rosu

Trainer: Catalin Rosu

Caphyon, Front-end Developer

Java vs Python: Coding Deathmatch

Call it the last battle, the Champions League final or the Super Bowl, this course will bring face to face two of the most used programming languages nowadays.

You will learn what is a REST API, how and why to create one with both Python and Java, how to deploy it and how to manage different coding situations.

In the aftermath of this session, you will find which one fits you better, when to use one or another and how to get the most out of both of them.

What we'll cover:

  • The benefits of Kotlin
  • The good and the bad parts of Java and Python
  • How to develop an API in both of them
  • How to integrate created API in an application
  • Performance, profiling, good vs bad practices, code maintenance, ease of reading the code
  • How to create automated tests
  • How to prepare for production and deploy an API
  • Many more :)

Difficulty: intermediate

Format: 3 courses ~ 2h

Andrei Zuica

Trainer: Andrei Zuica

Caphyon, Full Stack Developer

OOP Techniques in a Simple Game

Get started with object oriented programming in a fun and entertaining way by creating a simple sprite based game using the Cocos2D framework. In the course we will use C++, the gaming industry standard.

In this workshop we'll:

  • develop a simple game using Cocos2D framework and C++;
  • gradually refactor the previous code, introducing concepts like encapsulation, abstraction, inheritance, and polymorphism.

Sessions:

  1. Intro in framework mechanics and coding a part of the game.
  2. Examine the previous code and refactor it using object oriented thinking.
  3. Finish refactoring the code and add more features to make use of extensibility.

Difficulty: beginner

Format: 3 courses ~ 2h

Radu Albastroiu

Trainer: Radu Albastroiu

Caphyon, Software Developer

REST in Node.JS at the React & Angular SPA

In cadrul cursului vor fi abordate urmatoarele subiecte:

  • Fundamentele web
  • Servicii REST in Node.js
  • Notiuni de baza React
  • Solutia React
  • Notiuni de baza Angular
  • Angular in practica

Difficulty: beginner-intermediate

Format: 6 courses ~ 2h

Trainers: Cosmin Voicu, Octavian Marculescu, Gabriel Paunica

NetRom Software, Senior Software Developers

Sneak Peek Into Next Level QA (Test Automation)

What should you do, manual testing or automated testing? Which is better? Should you do just one of them? Both? Let's go through the advantages and disadvantages of both and see.

We should start with the most obvious for our users, UI testing (Visual Testing). What? How? Next, let's test the functionality of our webapp/website (E2E Testing or Functional Testing). Is anything broken after our last patch?

Maybe there's a problem with integration between two of our microservices, let's run some tests for that (Integration Testing), or maybe the problem is with our functions (Unit Testing). Granularity is the key.

Even the most conscientious tester will make mistakes during monotonous manual testing. Automated tests perform the same steps precisely every time they are executed and never forget to record detailed results. FREE yourself from manual testing, and gain more time to create new automated software tests and deal with complex features.

Difficulty: beginner-intermediate

Format: 2 courses ~ 2h

Antonio Valent

Trainer: Antonio Valent

Caphyon, Web Developer

Windows App Development with .NET WPF

In this course, we will learn how to create and improve a desktop application using .NET WPF (Windows Presentation Foundation).

The lecture covers the importance of continuously improving your code and software architecture. More than that, we will show you how to do it. Let's discover together the design pattern that stands behind the WPF Framework and how to use modern tools to create a better product.

Learn about:

  • What is WPF and how to use it to create a Desktop application
  • What are the benefits of the improving process
  • How to create an MVVM project architecture
  • What is a Nuget package and why is it useful

Difficulty: beginner-intermediate

Format: 2 courses ~ 2h

Traineri: Ionut Enache si Horatiu Prica

Caphyon, Software Developer

You'll Neversea Algorithms Like These

Is the performance still relevant in these days when the hardware is becoming more and more efficient and the computation costs goes down?

Now you can even use computation services without bothering of managing physical hardware, is there any reason why you should think about the performance and efficiency?

I'll give you two reasons why you should think twice before you'll choose to implement a naive solution instead of a natural algorithmical approach.

  1. Our time
    • How long are you willing to wait for a maps application to load the best route?
  2. Energy consumption
    • How often are you willing to charge your phone? How would it affect the climate change?

Well, let's try together to get some insights in some algorithms and their application in the real world, how we can solve some challenging tasks and make our lives easier.

What's inside for you:

  • Stack and Queue
  • Recursion
  • Binary search
  • Hash Table
  • Graphs and Trees
  • Heap Structure
  • Splay Tree
  • Topological Sort

Difficulty: intermediate

Format: 3 courses ~ 2h

Telechi Nicolae

Trainer: Nicolae Telechi

Caphyon, Senior Software Developer