forked from SushiSquad7461/sushisquad7461.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprogramming-onboarding.html
More file actions
237 lines (198 loc) · 12.8 KB
/
Copy pathprogramming-onboarding.html
File metadata and controls
237 lines (198 loc) · 12.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
<!DOCTYPE html>
<html lang="en">
<head>
<title>Resources | Team 7461</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="author" content="">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/font-awesome.min.css">
<link rel="stylesheet" href="css/aos.css">
<link rel="icon" href="images/tamago.svg">
<link href="assets/vendor/remixicon/remixicon.css" rel="stylesheet">
<link href="assets/vendor/owl.carousel/assets/owl.carousel.min.css" rel="stylesheet">
<link href="assets/vendor/venobox/venobox.css" rel="stylesheet">
<!-- MAIN CSS -->
<link rel="stylesheet" href="css/tooplate-gymso-style.css">
</head>
<body data-spy="scroll" data-target="#navbarNav" data-offset="50">
<!-- MENU BAR -->
<nav class="navbar navbar-expand-lg fixed-top">
<div class="container">
<img src="images/tamago.png">
<a class="navbar-brand" href="index.html">Sushi Squad 7461</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ml-lg-auto">
<li class="nav-item">
<a href="/" class="nav-link smoothScroll">Home</a>
</li>
<li class="nav-item">
<a href="/#about" class="nav-link smoothScroll">About</a>
</li>
<li class="nav-item">
<a href="/#portfolio" class="nav-link smoothScroll">Sponsors</a>
</li>
<li class="nav-item">
<a href="/history.html" class="nav-link smoothScroll">History</a>
</li>
<li class="nav-item">
<a href="/resources.html" class="nav-link smoothScroll">Resources</a>
</li>
<li class="nav-item">
<a href="/#contact" class="nav-link smoothScroll">Contact</a>
</li>
</ul>
</div>
</div>
</nav>
<!--
<section class="hero d-flex flex-column" id="home">
<div class="container">
<h1>Resources</h1>
</div>
<div class="container">
<div class="row">
<div class="col-md-12 biglinks">
<h6><a href="https://sushisquad.org/ppe-resources/">PPE Resources</a></h6>
<h6><a
href="https://docs.google.com/document/d/1ReB-0HeO8rGdcyTWvBJYWyBEy8vUJQ3sLEYQ2rIfR94/edit?usp=sharing">Safety
Manual</a></h6>
<h6><a href="https://forms.gle/aYGh3tikR7d3vKVA8">New Member Info form</h6>
<h6><a href="https://sushisquad.org/programming-onboarding/">Programming Onboarding</a></h6>
<h6><a href="https://www.chiefdelphi.com/t/team-7461-documentation-release/360456">2019
Documentation</a></h6>
<h6><a href="https://www.chiefdelphi.com/t/team-7461-kitbot-on-steroids-2020-edition/369079">Kitbot
on Steriods - 2020 Edition</a></h6>
<h6><a href="https://www.instagram.com/sushisquad7461/">Instagram</a></h6>
</div>
</div>
</div>
</section>
HERO -->
<!-- ABOUT -->
<section class="sponsors section" id="timeline">
<div class="container">
<div class="row ">
<div class="mt-lg-5 mb-lg-0 mb-4 col-lg-5 col-md-10 mx-auto col-12">
<h1 data-line-index="0" id="programming-onboarding">Programming Onboarding</h1>
<h3 data-line-index="2" id="kotlin-resources">Kotlin resources</h3>
<p data-line-index="4">This year, the programming subteam will be making the switch from Java to
Kotlin. <a target="_blank"
href="https://www.chiefdelphi.com/uploads/default/original/3X/4/9/49f9c846e580bdb9423fc3d0560573d162638b57.pdf">This
paper</a> explains the benefits of this move. If you're already proficient in Java,
Python, or any similar language, the best place to get acquanited with Kotlin is from the <a
target="_blank" href="https://kotlinlang.org/docs/tutorials/koans.html">Kotlin
Koans</a>.</p>
<p data-line-index="6">If you're a beginner, most Kotlin tutorials you'll find online are either
designed for people who already know Java, or are looking to do Android development. The
best resource for this situation is <a target="_blank"
href="https://www.amazon.com/Head-First-Kotlin-Brain-Friendly-Guide/dp/1491996692">Head
First Kotlin</a>. <a target="_blank"
href="https://www.youtube.com/watch?v=F9UC9DY-vIU">Here</a> is a pretty good Youtube
tutorial that you can follow along with as well.</p>
<p data-line-index="8">Before you start the rest of your prog training, you'll need to
demonstrate proficiency good at Kotlin. To make sure everyone is on the same page during
programming discussions, write a program that meets the following requirements:</p>
<ul data-line-index="10">
<li data-line-index="10">Process Strings from console input</li>
<li data-line-index="11">Create an abstract class called <code>Item</code>, and subclasses
that extend it</li>
<li data-line-index="12">Hold an inventory of <code>Item</code> objects, that the user can
manipulate and view</li>
<li data-line-index="13">Must use a Kotlin "when" statment (similar to a switch statement)
</li>
<li data-line-index="14">Must have an inline class definition (that you use somewhere)</li>
<li data-line-index="15">Must use a for-each loop</li>
<li data-line-index="16">Must appropriately use <code>val</code> and <code>var</code></li>
<li data-line-index="17">Must use a <code>filter</code> statment</li>
<li data-line-index="18">Must follow the <a target="_blank"
href="https://kotlinlang.org/docs/reference/coding-conventions.html">Kotlin Style
Guide</a></li>
</ul>
<p data-line-index="20">Although the official development environment is VSCode, you should use
IntelliJ for most of your development.</p>
<h3 data-line-index="22" id="github-requirements">Github Requirements</h3>
<p data-line-index="24">For collaboration, we use Github to share code. When you first start
learning Git and Github, it's important to know the difference between them:</p>
<ul data-line-index="25">
<li data-line-index="25"><strong>Git</strong> is a free and open source version control
system that allows you to work in teams and keep track of your code history.</li>
<li data-line-index="26"><strong>GitHub</strong> is a cloud service owned by Microsoft that
lets you manage your Git repositories for free. There are other online services similar
to Github, but Github is the most popular.</li>
</ul>
<p data-line-index="29"><a target="_blank"
href="https://docs.google.com/presentation/d/1MNZY5AGBjoUL_nHSWLreXEC06QkSJMxzhAiljMVCe2g/edit?usp=sharing">Here</a>
is a slide deck that explains the basics of Git.</p>
<p data-line-index="31">After you understand general Git concepts, install GitHub Desktop and
read some of the documentation <a target="_blank"
href="https://docs.github.com/en/desktop/getting-started-with-github-desktop">here</a>.
</p>
<p data-line-index="33">Then, to verify that your Git knowlegde:</p>
<ul data-line-index="34">
<li data-line-index="34">Clone the Sushi Squad onboarding repository from <a target="_blank"
href="https://github.com/SushiSquad7461/Kotlin-onboarding">https://github.com/SushiSquad7461/Kotlin-onboarding</a>
</li>
<li data-line-index="35">Put your Kotlin project into the repo, and give it a cool name</li>
<li data-line-index="36">Add, commit, and push your changes to a new branch</li>
<li data-line-index="37">Make a pull request so I can look over your project and verify that
it meets the requirements.</li>
</ul>
<h3 data-line-index="39" id="wpilib">WPILib</h3>
<p data-line-index="41">WPILib is the library that lets you control the robot with Kotlin.
Knowledge of WPILib features and how to use them is essential for the programming subteam.
You can access the documentation is <a target="_blank"
href="https://docs.wpilib.org/en/stable/">here</a>.</p>
<h3 data-line-index="43" id="lectures-to-watch">Lectures to Watch</h3>
<p data-line-index="44"><a target="_blank"
href="https://www.youtube.com/watch?v=pTuPhJ0DJB8">Here</a> is a short video that'll
help you understand PID control. WPILib can do PID for you, but understanding how it works
will allow you to better tune your constants and debug issues.</p>
<p data-line-index="46"><a target="_blank"
href="https://www.youtube.com/watch?v=wqJ4tY0u6IQ">This</a> explains trajectory tracking
using WPILib.</p>
<p data-line-index="48"><a target="_blank"
href="https://www.youtube.com/watch?v=wW_djLkD1B8">This</a> explains a robot project's
general structure, and although all the info is in the WPILib docs, this is just another way
</h2>
</div>
</div>
</div>
</section>
<!-- FOOTER -->
<footer class="site-footer">
<div class="container">
<div class="row">
<div class="ml-auto col-lg-4 col-md-5">
<p class="copyright-text">Copyright © Sushi Squad
<br>Team 7461
</p>
</div>
<div class="d-flex justify-content-center mx-auto col-lg-5 col-md-7 col-12">
<p href="https://old.reddit.com/r/FRC/comments/bgmlpn/worlds_has_been_blessed_with_justin/"
class="pr">See you at worlds!</p>
</div>
</div>
</div>
</footer>
<!-- SCRIPTS -->
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/aos.js"></script>
<script src="js/smoothscroll.js"></script>
<script src="assets/vendor/owl.carousel/owl.carousel.min.js"></script>
<script src="assets/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="assets/vendor/jquery.easing/jquery.easing.min.js"></script>
<script src="assets/vendor/isotope-layout/isotope.pkgd.min.js"></script>
<script src="assets/vendor/venobox/venobox.min.js"></script>
<!-- Template Main JS File -->
<script src="js/custom.js"></script>
</body>
</html>