I'm going to be releasing a video extremely soon on my journey through fastai, open source, and how it all merges together. In the meantime, I wanted to outline below the Software Design and Development program my school (@UWF) offers semester by semester: 🧵
Semester 1:

- C++ Programming. Getting you used to the nuances of memory, objects, variables, and so forth
Semester 2:

- Algorithm and Program Design. Using Github and more typical "algorithms" that traditional SE tracks would see

- Discrete Structures: Computer math

- Database Systems: Using flat-file databases and understanding how they work

Note: From here every class used git
Semester 3:

- Java Programming: After taking 2 courses in C++, learn how to use Java

- Data Structures & Algorithms 1: A harder alg and prog. Easily one of the hardest in the trek. Traditional "CS" course

- Intro to Computer Organization: Machine coding
Semester 4:

- Operating System Fundamentals: How do OS's work

- Server Side Programming: Building the backend of websites (Node.JS, etc)

- Intermediate Programming: More advanced Java programming
Semester 5:

- Network Fundamentals: How do networks work, the type of networks, how do they communicate, etc

- Secure software development: How do you develop safe software and what do you look out for
Semester 5.5 (Summer):

- Linus System Administration: Fully utilizing the Linux environment and bash
Semester 6:

- Software Engineering 1: A team based semester-long project fully encompassing most of a real world scenario such as project reports, code review, sprints, and so forth

- Dist Software Arch: Multiprocessing and the nuances with that
Semester 7:

- Software Engineering 2: Taking SE1 further, bigger projects, bigger scopes, more heavy on writing good tests and solid project documentation (through reports)

- Client-Side Programming: Front-end web development with React, Node, etc
Semester 7.5 (Summer):

- Mobile Programming: Learning Kotlin and Android Studio
Semester 8: (Currently)

- SE Management: Handling released software, Docker, Github Actions, and larger-scoped projects (such as many micro-services, etc)

- Capstone: Another class similar to the SE track, but everyone in your team is a different major
Hopefully folks can look at this program, see where gaps exist in what you know, and use it for inspiration and ideas to help strengthen your skills further

Please feel free to ask any questions you have on any of it!
cc @varcharr as I know you were particularly interested in this🙂

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Zach Mueller

Zach Mueller Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @TheZachMueller

25 Aug
Friends that are familiar with @github actions, is it possible to deploy to gh pages by using files generated *from* an action? I don't mean building to another branch and then deploying that branch (that I can do), I mean using in-memory files to deploy from
@github Scenario: I have a bunch of .md's I've made to build some docs, but I want to segment out another git repository that handles things like the Gemfiles and whatnot. What this action should do is pull those gemfiles (which I can already do) and then deploy on this current state
@github And not just send it off to another branch to deploy.

What this aims to alleviate is having to update n-teen Gemfiles when there's a security flaw somewhere
Read 4 tweets
24 Aug
As promised, here is our textbooks and optional readings for Software Engineering 2 and Software Engineering Management. (There were none for SE1) 🧵
Software Engineering 2:

Martin, Robert. Clean Architecture: A Craftman’s Guide to Software Structure
and Design. Prentice Hall, 2018. ISBN: 978-0134494166

We discussed how one properly deals with writing clean code and handling issues within them 2/
Such as alleviating cyclical dependencies, how flexibility of code and narrowing of a system interact with each other, as well as how to find that balance.

Amazon link:

amazon.com/Clean-Architec…
Read 6 tweets
7 Aug
How can you learn to use the @fastdotai framework to its fullest extent? A thread on what I believe is the most important lesson you can teach yourself: 👇

1/
First: fixing a misconception. At its core, fastai is just PyTorch. It uses torch tensor, trains with the torch autograd system, and uses torch models.

Don't believe me? Let's talk about how you can learn to see this and utilize it

2/
Start with the PETS datablock + dataloaders, but write your own pytorch loop. Use cnn_learner if you want to start, and grab the model in learn.model

Train your model in the torch loop, and see that we can achieve (similar) scores.

3/
Read 8 tweets
2 Jun
I've written a notebook showing three additional functions for helping you navigate the @fastdotai source code and save you potentially hours of time: gist.github.com/muellerzr/3302…

1/
Why did I write this? Navigating the source code for fastai can be hard sometimes, especially trying to consolidate all the patch and typedispatch functionalities (especially because typedispatch doesn't show up in the __all__!)

So, how does this work? 2/
The first function, `trace_class`, will grab all functions in a class up to a particular library. This is helpful in scenarios where a class inherits something (like a torch tensor) but you only care about the super class level (like TensorBase):

3/
Read 7 tweets
20 May
I got asked a question at the end of my stream by @lukemshepherd I didn't quite get to answer:

​Do you have any advice for someone who wants to get into contributing to the @fastdotai library who has experience with fastai but not software development?

Let's try to answer:
If you have absolutely zero, I recommend watching the first few lectures in the latest part 2 (yes of a few years ago!). Since it's building a library from scratch, Jeremy covers how he approaches software design, which can help you understand the design
From there, start small. Look at the simpler areas of the library, and try and add some documentation, etc. Then slowly build yourself towards not understanding how fastai works, but how the DESIGN process works. Apply yourself towards seeing how classes interact, etc
Read 10 tweets
6 May
With school over, I'll reveal one of my secrets. I'm making a new course!

Running with @fastdotai! Times and dates are TBD, but I'm shooting for this Fall to hold the course. This will be a continuation on Walk with fastai, building on what we learned there and applying it 1/
The plan is to split it up into three sections: Debugging, Implementations, and Guest Speakers.

The first section I want to be covering debugging in fastai, bringing raw torch code over (direct 1:1 conversions), and exploring inference heavily
The second will be walking through a few implementations of other libraries that have used fastai (and writing one or two ourselves) in a much more complex manor rather than "set your data up so the DataBlock works". Situations will arise where the DataBlock doesn't exist yet!
Read 5 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(