# Welcome

<br />
<br />
<br />
**Make sure to read this presentation from https://go.epfl.ch/PCSlides2**
---
### Content
* From EPFL to IDEV-FSD
* Some project
* Coding dojo
* Tips
* Discussion
---
<!-- .slide: data-background="https://i.imgur.com/WaEysKQ.jpg" data-id="slide-epfl" data-contrast="on" -->
## EPFL = Academic
### 3 missions: education, research and innovation
----
#### Numbers
* EPFL: \> **15000 people**
* EPFL employees (scientific, administrative & technical staff): \> **5700 people**
* EPFL / SI (Information Systems): \> **130 people**
* EPFL / SI / IDEV (Engineering and Development): \> **40 people**
* EPFL / SI / IDEV / <span class="more">**FSD**</span> (Full-Stack Development): <span class="more">**8 people**</span>
<center><small>https://www.epfl.ch/about/overview/overview/figures/</small></center>
----
#### Full-Stack Development
This team is made of “Full-Stack” developpers[...]. The main responsibility of the team is software development, maintenance and evolutions of EPFL Web applications. Also the application of **DevOps methodology** in order to enhance **development cycle** (code, test, release, monitor, and maintain) of existing infrastructure.
----
#### DevOps

---
<!-- .slide: data-background="https://i.imgur.com/K6Iy6FQ.jpg" data-id="slide-epfl" data-contrast="on" -->
## Projects
1. Jahia to WordPress
1. Tracking of old EPFL logo
1. Network Operation Center (NOC)
1. gitlab.epfl.ch
1. go.epfl.ch
1. Others projects
<center><small>Photo by Uwe Hensel on Unsplash</small></center>
----
## Jahia to WordPress
* Migration of 800 websites from Jahia to Wordpress
* Script to migrate website
* Infrasctructure with Docker and OpenShift
* Automated deployment with Ansible
----
## Tracking of old EPFL logo
Late last year the EPFL logo was updated, but the old one was still on many web pages.

----
## Network Operation Center (NOC)

----
## Gitlab
Service offered on premise to all EPFL users:

----
## go.epfl.ch
Where "https://www.epfl.ch/about/vice-presidencies/vice-presidencies/information-systems/governance-development-and-operations/projects-development-and-systems-engineering/" becomes [https://go.epfl.ch/fsd](https://go.epfl.ch/fsd).

----
## Other projects
* Maintenance
* Maintenance
* (a lot of)
* Maintenance
Maintenance work: update, improvement, extension, security fix, deployment architecture of ageing projects<br/> (inForm, grantsDB, LHD, Blog, Wiki)
---
<!-- .slide: data-background="https://i.imgur.com/SH788tW.jpg" data-id="slide-dojo" data-contrast="on" -->
## Coding Dojo
<br />
<br />
<br />
<center><small>Photo by Kaleidico on Unsplash</small></center>
----
#### What's a coding dojo
> A Coding Dojo is a meeting where a bunch of coders get together to work on a programming challenge. They are there to have fun and to engage in [deliberate practice](http://codingdojo.org/DeliberatePractice) in order to improve their skills.
<center><small>http://codingdojo.org/WhatIsCodingDojo/</small></center>
----
#### How (workflow)
* a subject
* one laptop
* one timer
* 5min/turn to progress on the subject
----
## EPFL Dojos

* Dojo for apprentices (trainees)
* Dojo for developers (advanced)
<br />
<br />
One hour each, once a week (Friday).
----
#### Pros
* Technology tourism
* Cover a lot of subjects/languages
* Networking
* Community (chats / help)
* Learn how others people deal with things
----
#### Cons
###### *“None, but we never finish anyt...”*
(Dojos are not a producing plateform, more a meetup/incubator/innovation/learning lab)
----
#### Example — Kata Arrow
Draw an arrow in the terminal according to the user input:
```
input = 4
*
* *
* *
*******
*
*
*
*
```
----
#### Benefits of the arrow Kata
* Doable in one hour
* Easy concept, constent logic, good to discover new languages
* Already done in 15 languages:
`clojure`, `dart`, `go`, `haskel`, `javascript`, `kotlin`, `lua`, `nim`, `perl`, `php`, `python`, `racket`, `ruby`, `rust`, `swift`
----
#### Infos
* Source: https://github.com/epfl-dojo/kata-fleche
* Other kata examples: https://github.com/topics/epfl-dojo-kata
----
#### More
* https://gitlab.com/epfl-dojo
* https://github.com/epfl-dojo
---
<!-- .slide: data-background="https://i.imgur.com/gUHwGSo.jpg" data-id="slide-tips" data-contrast="on" -->
## Tips
What does it take to become a better developer ?
<br />(AKA my 2 cents)
<center><small>Photo by Ashes Sitoula on Unsplash</small></center>
----
## “Learn to read before you write”

<center><small>https://blog.codinghorror.com/learn-to-read-the-source-luke/</small></center>
----
## “Join and participate”
* :heart: Open Source
* https://opensource.guide/
* https://opensourcefriday.com/
* https://www.meetup.com
* LUG (Linux User Group / SwissLinux)
* FIXME (Lausanne Hacker Space)
----
## “Enjoy to move outside your comfort zone”

----
## “Train on personal project”

→ The best way to get something done is to begin
----
# “Sharing is caring”

→ The learning-by-teaching effect has been demonstrated in [many studies](https://digest.bps.org.uk/2018/05/04/learning-by-teaching-others-is-extremely-effective-a-new-study-tested-a-key-reason-why/). #ProtégéEffect
----
## Ego?

→ There's always someone better than you - ask for help and guidance
----
## “It's OK to make mistakeS”

→ You don't learn much by doing everything right...
----
## Stackoverflow

* Get help
* Give help
* <span class="more">make reputation</span>
----
## “Keep having fun in learning”

* https://www.codewars.com/
* https://www.root-me.org/
* https://leekwars.com/
* and a tons of other online ressources...
---
<!-- .slide: data-background="https://i.imgur.com/Bw5IYCM.jpg" data-id="slide-attitude" data-contrast="on" -->
## Keep good attitude
<br/>
<center><small>Photo by Yingchou Han on Unsplash</small></center>
---
## About this presentation
* Author: Nicolas Borboën <nicolas.borboen@epfl.ch>
* Presenter: Giovanni Cangiani <giovanni.cangiani@epfl.ch>
* Sources: https://go.epfl.ch/PCSlides2
* How: [hackmd.io](https://hackmd.io/) → [reveal.js](https://revealjs.com)
---
<!-- .slide: data-background="https://i.imgur.com/NkFIAgn.jpg" data-contrast="on" -->
<!--  -->
## Discuss / AMA / Share
<!--
This style apply by default to all slides, unless .slide is used.
Note the use of the reveal class selector: this mean that only the presentation is affected by this style, and the makrdown preview or the book mode of hackmd.io is style intact.
If you want/need a resizable background image, add the background-size: cover; property and change background-position: 0px 0px;
-->
<style>
.reveal {
background-color: #e6e6e6;
background-image: url('https://epfl-idevelop.github.io/elements/svg/epfl-logo.svg');
background-repeat: no-repeat;
background-position: 5px 5px;
}
.reveal {
color: #707070;
}
.reveal h1, .reveal h2, .reveal h3,
.reveal h4, .reveal h5, .reveal h6 {
color: #212121;
}
.reveal a {
color: #f009;
}
.reveal a:hover {
color: #f00;
}
.reveal .more {
color: #339;
}
.reveal code {
padding-top: 0.2em;
padding-bottom: 0.2em;
margin: 0;
font-size: 85%;
background-color: rgba(255, 255, 255, 0.46);
border-radius: 3px;
}
[data-contrast="on"] > div {
background-color: #ffffff94;
}
/* https://stackoverflow.com/a/39614958/960623 */
img[alt$=">"] {
float: right;
}
img[alt$="<"] {
float: left;
}
img[alt$="><"] {
display: block;
max-width: 100%;
height: auto;
margin: auto;
float: none!important;
}
</style>
{"metaMigratedAt":"2023-06-15T00:39:07.739Z","metaMigratedFrom":"YAML","title":"EPFL / PowerCoders (v2)","breaks":true,"description":"A presentation of EPFL activites for PowerCoders (v2)","slideOptions":"{\"transition\":\"fade\",\"theme\":\"black\"}","contributors":"[{\"id\":\"d4f95d06-3c38-4029-838a-43388a793679\",\"add\":8583,\"del\":9121},{\"id\":\"98cf1d10-5049-49ca-9160-3f2e67fc1067\",\"add\":10951,\"del\":1830}]"}