In this lecture, Iâll answer some of the common questions people have before committing to starting a new EngineeringSkills course. First, letâs tackle the question of prerequisites, or the things that you should be familiar with before taking the course.
What should I know before starting the course?
Any prerequisites that I mention here, are to some degree, optional since you can compensate for almost any gaps in knowledge by doing extra reading in parallel with the course.
Having said that, if you want a relatively smooth learning experience, where at least some of what you encounter feels familiar, you should consider completing my course, Finite Element Analysis of Continuum Structures in Python (Iâll just refer to this as the prerequisite course going forward). That course covers much of the same ground that weâll tackle in this course, particularly in terms of how we build our custom solver.
Where that course focuses on in-plane actions on 2D continuum elements, this course introduces a more complex finite element. Fundamentally, the elements and their stiffness matrices differ, but much of the content relating to how we implement our custom solver in Python is common between the two courses. So, someone who completes that course will find much of the custom solver code in this course to be very familiar. This familiarity tends to lower the cognitive load when youâre tackling largely new material.
In summary, you can make life easier on yourself by completing the prerequisite course first, but itâs not a hard prerequisite; youâll still manage this course without it.
Do I need to know Python?
Next is the question of Python and how comfortable you need to be with it. If youâve completed the prerequisite course or any Python-based EngineeringSkills course, then you will be fine with your current level of Python.
If you havenât completed an EngineeringSkills course before but have done some programming in ANY language, you should also be fine, since mapping programming concepts from one language to another is pretty trivial.
If you donât have any previous experience with Python specifically and need some help getting a Python development environment set up on your computer, you can follow the links in the blue box at the bottom of this page. These will redirect you to other lectures that will walk you through setting up your local development environment.
If you have never programmed before, at all, can you complete the course? The short answer is yes. Provided you have plenty of patience and are willing to persevere in the early stages, youâll quite quickly get the hang of Python. Having said that, I donât want to understate the challenge; you are trying to learn Python alongside a relatively complex engineering topic, so for most people this will be tough, though not impossible.
So, if youâre up to the challenge, great! But if youâd like a slightly gentler introduction to Python, before diving straight into this course, consider completing my course, The Direct Stiffness Method for Truss Analysis with Python. This will give you a great introduction to Python while also being based on related engineering theory - so, much of the code we write in that course will be similar to what we write in this more advanced course, but the underlying theory will be a lot simpler.
How to get help
Next, I want to point out how you can get help if you run into roadblocks while completing the course. The main avenue for additional support is the Q&A forum.
Each lecture has a dedicated discussion thread where you can post any questions you have about the material covered in the lecture. If your question relates to a specific part of the lecture, please provide a time-stamp to help me respond as efficiently as possible.
You can also email me, but to be honest, the fastest route to an answer is typically through the forum. You may also find that someone has already asked your question and received an answer that youâll find helpful.
In addition to asking questions, youâll find that many of the lectures have downloadable resources. These may be pdfâs of the handwritten notes I produce as I record a lecture, or they may be Jupyter Notebooks containing my version of the code we wrote in a lecture.
If youâre running into errors running your code, itâs a good idea to download the Jupyter notebook for the relevant lecture and compare your code to mine. This often helps highlight typos that are stopping your code from running.
Some final tips for success
Finally, Iâll give you a couple of tips to try and help you get the most out of the course.
Write your own notes - itâs a game-changer!
First off, for any sections where you see me writing notes by hand, I strongly encourage you to write your own version of the notes rather than simply downloading the pdf version.
I know itâs time-consuming and more work, but writing your own version of the notes is very powerful because it allows you to reword things and make additional comments as they occur to you. Youâll find that you have a much greater understanding of a section if you were actively building your own set of notes as you worked through it. This stops you drifting into passive consumption mode, which is all too easy to do in a video-based course, particularly on theory-heavy sections.
You can also make notes directly in the EngineeringSkills platform. This way, all of your notes will be stored alongside the relevant lecture and be timestamped to the specific part of the lecture that they refer to. When you want to make a new note, just click in the notes tab below the video and start typing. Then, when you go back to a lecture later, youâll see all of your notes and quickly be able to refresh your memory.
Whether you make notes in the platform or store them externally, the key thing is that you begin compiling a record of your own evolving understanding of the material.
Slow down - this should take time
My final piece of advice is to take your time. Donât fall into the trap of rushing through the lectures just to get to the end of a section. Learning is not about simply ticking off lectures and consuming content. Itâs a process that requires you to actively work through the material, taking notes, reflecting on what youâre learning and constantly reevaluating how new knowledge is fitting into your existing mental model. So, slow and steady progress is the name of the game!
Ok, with all of that covered, in the next lecture, letâs talk a little about what Reissner-Mindlin theory is, at a high level, and why itâs the foundation of the entire course.
If you haven't worked with Python before, no problem! The first thing to do is get your coding environment set up. In this course, we'll be working with Jupyter Notebooks. I'll be using VSCode as my text editor, but you can use whatever you prefer, e.g. Jupyter Lab, Cursor, PyCharm...whatever you're comfortable with.
You can think of a Jupyter Notebook as an interactive document that allows you to write and run Python code. It's a great way to mix code, text, and visualisations all in one place - for engineering analysis they're amazing! If you'd prefer to work with raw Python script files, that's also fine.
To get set up, take a look at the two videos listed below - the first introduces Jupter Notebooks and the second introduces you to using Jupyter Notebooks inside of Jupyter Lab:
Now, although I'll be using VSCode as my text editor, Jupyter Lab works just as well. If you'd prefer to use VSCode, simply download it and fire up a new Jupyter Notebook inside the editor.
If you hit any issues, just head down to the lecture comments section below and reach out. I'm here to help!
When we start working with Python - you may feel a little overwhelmed at first - this just means you're learning!!
Stick with it - by the time you get to the end of the course, you'll be so much more comfortable working with Python.