I recently graduated from Flatiron School's Software Engineering course, and would like to pass on some advice I learned firsthand during my learning experience to any current, or future, students. While I attended Flatiron School, this advice is applicable to students attending any program. A lot of the advice I can give is focused on students learning online, but some of it is universal to learning to program in general.
Everybody learns differently. These tips are things I found helpful, if they don't work for you, then try something else!
I chose to enroll in their flexible online program, which was 100% online and stretched over a period of ten months, excluding one month of pre-course work. I went with this option because I was working full time, and could not afford to quit work to attend a full time, in person course.
Students were placed into a cohort of about fifteen students with one instructor. Each week, the cohort had two hour long class sessions together with the instructor. Then, once a week, you and two other students had an hour long session with the instructor to go over any problems or topics the few of you wanted to discuss. You were also able to schedule one-on-one time with your instructor as often as he/she was available.
The course was broken into five phases. Each phase consisted of a topic/language to learn, a project to be completed and assessed, and a live coding challenge to be graded. The phases built on each other, and by phase five, we were using everything we had learned.
My wife and I lived in a single bedroom apartment with our newborn son taking up more space than I could have ever imagined an infant would. When I went through this course, we did not have a lot of space to spare. At the start of the course, I was just plopping my laptop on the kitchen table, using it on the couch, or wherever I thought I would want to study and work. It was hard to really get into a "work" mindset and be able to focus on learning difficult concepts, much less put them into practice.
My advice to you is to dedicate a specific workspace that nothing else in the house has claim over. You don't need a dedicated home office room to accomplish this, it can be a specific corner of the kitchen table, a foldable table you set up in the basement, or anything! That way, when you sit down and login to your computer, your mind knows its time to focus and work, because there is nothing else that is done in this spot of the house/apartment. While I did take my laptop with me for travels, I was never quite as productive as when I was at my "desk".
Much like you set aside a physical space to work in, set aside time that you work during. Even with my wife and I both being back at work with a newborn baby, I was able to set aside time to work. While the class meeting times are set in stone, you need to set time aside to learn and complete course material on your own. There will be times during your curriculum that are slow paced, and some that are fast paced. For me, I did most of my course work on my days off work, and for two hours immediately after getting home from work before I got too tired. It is a sacrifice, and can be mentally draining, but know that it is temporary and it helps you in the long term.
Don't be shy! Flatiron School utilized Slack to facilitate communication within the cohort and with the instructor. If you are stuck on topic or problem, message your cohort and see if anyone else is also stuck. Everyone is in it together, and your question is never beneath the group. Topics you learned in the first month, you might forget in a few months. If you can't figure out your problem through research, reach out for help. And don't feel hesitant to schedule one-on-one meetings with your instructor. They are paid to be available to you, you are not inconveniencing them.
I didn't really learn this lesson until I was working on my final project. I was determined to implement a new concept and library on my frontend for my final project. When I started trying to use these new tools, I got stuck. I utilized online resources, peers, and my instructor, to no avail. The library was new to my instructor, so we were more or less learning it together through our meetings, instead of me more speedily implementing it into my project. I did not work on other areas of my project while I was trying to figure out this one concept. Bottom line, I wasted two weeks on my final project on getting one concept to work. This put me behind for the rest of my project, and I was rushed for the remainder of the course.
If you are stuck on one topic in a project, work on the topics you do understand. You can build out other aspects of your program, and come back to the problem area later.
Those are my four biggest takeaways from remote learning. These are pieces of advice I will take with me into my new career, and I hope they help you during your studies.