📢 NEW COURSE - FEA PLATES AND SHELLS - MEMBER'S EARLY ACCESS
2. Housekeeping - Python, pre-requisites and tips for success
Welcome and Setting the Scene
📂 Please log in or enroll to access resources

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.

🐍 New to Python, read this...

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:

  1. Getting started with Jupyter Notebooks
  2. Moving to JupyterLab

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.

Next Lesson
3. Plate theories and why Reissner-Mindlin?