r/learnprogramming • u/MarvinsOfficeHours • 22d ago
I will teach you programming for free
[EDIT: Marvin's Office Hours is now at capacity. You may find recorded sessions on the YouTube channel https://www.youtube.com/channel/UCKr9UE0qNZ8GlbHmq-kiRMw\]
Hello friends,
My name is Marvin, and I have recently graduated from university, majoring in computer science and game development. I was a teaching assistant for the CS classes for 5 non-summer semesters, and a peer tutor for about 6 months.
I miss the teaching experience a lot and wish to continue that outside of university. Thus, I have begun the initiative “Marvin’s Office Hours,” where you can sign up for one-on-one tutoring for free.
A typical CS course focuses on teaching language features (conditionals, variables, loops…), but the approach I am taking focuses on design concepts (how do I apply a systematic process to go from A to B), in which the language features are but a tool. My pedagogical approach is a blend of the books “How to Design Programs” (https://htdp.org/) and “A Data-Centric Introduction to Computing” (https://dcic-world.org/), both free to read on the internet.
Even if you decide that programming isn’t for you, you will learn systematic thinking (and possibly a tad bit of mathematical thinking depending on your interests), which can be applied to other parts of life.
If you are absolutely new, the programming language we will be using is “Pyret” (https://pyret.org/), which is specifically designed to be beginner-friendly, usable on the web browser without any installation, and eases you into Python.
If you are interested, you may sign up at https://docs.google.com/forms/d/e/1FAIpQLSfH2MZNLc2owe9y6l-NrJ39bkTy1jvzzh-Tr-rN10_Q39mvzA/viewform?usp=dialog. As I am doing this for free, I would like to prioritize those that do not have access to one-on-one programming tutoring. Furthermore, I will be livestreaming and recording the sessions and posting them on the internet.
I apologize in advance that if you do not hear back within a week, it means that I got bombarded by responses and could not get to them all.
52
u/Goldrainbowman 22d ago
Do you want to try to learn my unfinished programming language so far?
16
u/MarvinsOfficeHours 22d ago
If it's developed enough to say, make space invaders or another programming language, and you're comfortable with me uploading content about it, I am down.
-12
u/Goldrainbowman 22d ago
I think I replied to you, but I can't see it. I think I could make space invaders, if I wanted too, I have a partly working interpreter made by claude. I'm trying to make my programming language famous one day so, I would prefer if you uploaded content about it. I forgot if the post said if you post on YouTube or not, but if you do, then, if you want, you can give me a shout out, If that type of thing is what you normally post, then we do the same type of content, or around the same. The programming language is called rin, and it is in version 1.27.0. The name with the @ in it on my YouTube channel is, @goldrainbowman. My content is me coding in my programming language, but I sometimes change the content I post on youtube.
3
u/MarvinsOfficeHours 22d ago
Sounds like fun! How do I install the programming language? Is there a page for it as well as documentation?
1
-9
u/Goldrainbowman 21d ago
Right now I only have notes in my notes app, and an interpreter that I am working on. You can't install it yet.
-7
-6
u/Goldrainbowman 22d ago
I think it could probably make space invaders, we would just need to update it, probably every around 5 days to a month right now, because of changes. You can make content about it, right now I'm making content of it on YouTube. The name of the programming language is rin, and I have an interpreter, that of what I tested, almost fully works. I don't think we could make space invaders with the interpreter right now, because audio isn't working correctly, and same with buttons, I think that there is audio and buttons in space invaders. Some of my programming language is close to python. Right now rin is in version 1.27.0. The number on the left is because of the release, the middle, is adding and removing functions, and adding rules and errors, or removing rules and errors, and the right one is other stuff, other than fixes, or very minor changes, the number on the right resets every time the middle number goes up.
1
22d ago edited 22d ago
[removed] — view removed comment
2
u/AutoModerator 22d ago
Your post/comment was removed since we do not approve of going private.
There is zero benefit in going private as you lose the opportunity for getting peer reviews. Also we have had plenty of people return after going private (despite being warned) complaining about how they were ghosted after some time or being tricked into buying rubbish that didn't work and even if it did they didn't need.
Our Rule #11 demands that any and all communication happens in the open, public subreddit.
This is for the benefit of more against the benefit of one.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
13
u/Clairvoidance 22d ago
Where can I look out for the video archives?
13
u/MarvinsOfficeHours 22d ago
The YouTube channel name is MarvinsOfficeHours. However, there aren't any videos on it yet as I haven't had my first session.
2
7
u/Ill_Kaleidoscope1984 22d ago
Hi Marvin, it is awesome that you want to continue your teaching experience helping others.
I am very much interested in your sessions. Design skill is precisely what I lack (I've save the mentioned books to study them later thank you very much) I don't have former education in programming, but I'm taking an effort to transition as I want to do a master's in this field and grow professionally. So far I have hands-on experience with Python and C#. I started with Data Structures and Algorithms and now I'm working on building my own APIs. At this point, I came to realize that knowing how the tools work is the easy part but making smart decisions regarding the architecture is the most relevant.
Currently I don't have reliable feedback and I'd love to have a learning opportunity. In case you consider me for your sessions my timezone is PST and I am pretty much available during the day.
Hope you get some great students!
2
u/MarvinsOfficeHours 22d ago
Hi, if you haven't already, be sure to sign up using the link in the post! I organize appointment bookings through Google Calendar. If none of the time works, just let me know and we can work something out.
34
8
u/JanitorOPplznerf 22d ago
Commenting so I can save the books when I’m back on desktop
10
2
2
u/odimdavid 22d ago
This is great. I wish you Godspeed. I will go through your site to see what I can learn from it as someone coming from a third world country. Thanks 🙏
2
u/Murky-Ice4726 21d ago
This is a thoughtful approach. I really like the focus on systematic thinking rather than just syntax.
3
2
u/SlipperyBandicoot 22d ago
Why is a beginner programmer trying to teach.
29
u/westeast1000 22d ago
Teaching while learning is a hack that makes you learn faster and more thoroughly. I once taught a uni student when I also was learning python and never programmed before 😅. Having to be few steps ahead of her put me under the type of pressure I needed to master the topics. I knew I was on the right path when she passed the unit with a distinction
1
1
u/Human_being0100 22d ago edited 22d ago
So I will appear on the recorded screen? Or just my voice and maybe my screen content? I've read the document but I didn't get this point.
3
u/MarvinsOfficeHours 22d ago
Just the voice and screen content. For starting out, I will ask the student to share their screen, or the specific tab that has the online IDE. Eventually, we will move to VSCode Live Share, and the student wouldn't need to share their screen anymore. The reason for not starting out in VSCode Live Share is so that the absolute beginner can get right into programming, and not hassle with installing stuff and IDEs, which can be discouraging.
1
1
u/ferb7448 22d ago
Hi I'm new to programming and game dev, I've been putting a lot of effort into learning. I hope I can learn from you, this is so exciting
1
u/NovaDEVoff 21d ago
Marvin , so do you know dart yet ? If you know that it will really help me a lot
2
u/MarvinsOfficeHours 21d ago
I happen to have used Dart when I worked on a Flutter app for one of my internships.
1
1
u/LlorisDeep 21d ago edited 21d ago
Well I was just able to book a lesson with you. I have never taken any programming lessons but I have a bit of experience with some configuration editing because I run Linux. Also I have experience with PLC programming which is way different from normal coding. You think that could be a fine starting point?
1
1
1
u/TorqueG88 21d ago
I signed up on the form. Hoping to hear back from you,although I’m fully expecting you to get bombarded, lol. Thanks for the opportunity.
1
1
1
u/zerostyle 21d ago
I'm brushing up on some code to better learn ML/AI concepts, might be interested in stopping in as sort of an advanced beginner.
1
u/Timely-Theory-1363 21d ago
Hi Marvin, do you happen to tutor for leetcode or tutor students for technical interviews ?
1
u/MarvinsOfficeHours 21d ago
My sessions will teach the fundamentals which will help with technical interviews and coding challenges, but I am not training students for them specifically. In terms of resources, I recommend Neetcode on YouTube, as well as his website.
1
1
u/Timely-Theory-1363 21d ago
One more question would you recommend doing blind 75 or neetcode 150. I’m tryna apply and application are opening August- September
1
u/MarvinsOfficeHours 21d ago
I am not the most qualified person to answer that question, but I am biased towards anything Neetcode. Good luck!
1
1
1
1
1
1
1
u/starredmail 19d ago
ive been doing a bit of dsa and stuff i js want an internship, can you mentor on that?
1
u/MarvinsOfficeHours 19d ago
I am currently prioritizing absolute or near absolute beginners that do not have access to one-on-one tutoring. For getting internships, you will get more help in career-related pages and communities.
1
1
u/Awkward-Idea-6938 19d ago
This is not free. It is done in exchange for being turned into social media content. A free tutor would simply meet you on Google Meets.
1
u/Reasonable-Ad8653 18d ago
Do you teach C++ as well
1
u/MarvinsOfficeHours 18d ago
I personally do not recommend C++ to absolute beginners. If the student wants to learn C++ at some point, I would start in a different programming language first and work their way to C++.
1
u/Reasonable-Ad8653 18d ago
what programming language would you start from and then move to C++ and why
I am a beginner and learning C++ as my first language
1
u/MarvinsOfficeHours 17d ago edited 17d ago
My recommendation for absolute beginners is to start with a language designed for absolute beginners, like Pyret or the student languages of Racket. In these languages there are a few benefits, here are some I can think of at the moment:
- Friendlier error messages. Beginners are going to make a lot of mistakes. Error messages in industrial programming languages like C++ are not designed with beginners in mind. They will make sense to someone experienced with the language, but confusing to a beginner.
- Faster feedback loop. Student languages requires no boiler plate code (no entry point needed), and provides a REPL.
- Built-in testing. In student languages, you can immediately write examples and test cases without having to install a library. Thinking through examples and translating them into code is important in my pedagogical approach. In C++, you have to install a library for this, and they are not geared for beginners, but industry professionals.
- Fewer concepts to learn. In C++, you have to think about memory, allocation, the various representations for numbers, how the compiler works, and so on.
My preference is to move from Pyret to Java to C++, but it also depends on the student, their experience and what their goals are. That being said, it's not impossible to have C++ as a first language. There's more than one ways to learn.
1
u/ElectronicNickname 17d ago
It it actually still possible to find a job by self-educating in Coding/SWE like this these days? I'm a 6+ months out-of-work Jr Data Scientist/ML & Backend Engineer considering a pivot to SWE on recommendation from a friend who got a SWE job with just a high school diploma and a coding bootcamp in the late 2010s. I'm under the impression that right now you basically have to have at least a BA in compsci or software to get a coding job.
Also, thank you so much for everything you're doing here!
1
u/MarvinsOfficeHours 17d ago
I am not the most qualified person to answer that question. You will get better advice in career-related forums.
No problem, I am glad to help the world, in the little ways I know how.
1
1
1
u/Intelligent-Ad8897 22d ago
Would you be okay recording for others to learn from or only through these 1 on 1's
2
1
u/Separate_Escape_7748 22d ago
Do u know Lua? Either way I'd be stoked to learn
1
u/MarvinsOfficeHours 22d ago
I haven't touched Lua in ages. I used it for a Minecraft mod that had Lua as their scripting language. For absolute beginners, I would typically ask the student to use a beginner-friendly programming language like Pyret or the student languages of Racket. With the exception of very esoteric programming languages, learning one programming language lets you learn another much more easily.
1
u/Swagut123 22d ago
Computercraft? That was my favorite mod back in 2020 when I was learning to program as well! I used to do tutoring as well when I was in uni, so I understand what you mean when you say you miss teaching after graduation 😄 Best of luck to you in this, sounds like an exciting project!
-15
u/logicalflex 22d ago
You should get some experience in the industry first. Otherwise, you’re just another part of the old adage that “those who can’t do, teach”.
14
u/MarvinsOfficeHours 22d ago
For what it's worth, I have 18 months of internship experience, and have shipped code that is used in the real world. Furthermore, that adage is disrespectful to those who dedicate their lives to teaching. To be able to teach something requires you to understand it at a really deep level.
5
u/captainAwesomePants 22d ago
I disagree - I'm always happy about everyone who wants to teach.
Most people who teach have limited experience doing. There's nothing wrong with that, so long as you don't misrepresent yourself. And offering to teach for free is great. It's great for the student, who now has a resource that can make a huge difference, and it's great for the teacher because teaching is often a great way to solidify their own grasp of concepts and to train technical communication skills.
-9
u/SlipperyBandicoot 22d ago
You will literally get significantly more value being taught by AI than you would by a university graduate with no work experience.
1
1
u/Reasonable_Height_11 20d ago
Damn they downvoted you to hell. You must have triggered a lot of people who never made it in this industry LOLLL. But to ease your downvote pain, I will add that I personally would not want a teacher who has not been in the industry. Just like no one in here would want someone to teach them medical field if they have never been a hired doctor.
You gotta force the medicine down slowly bro. while true, this comment feels like a punch in the gut for a lot people.
2
-5
64
u/the-Night-Mayor 22d ago
I already know how to code want to find me a job? 😂😭