Jacob Sorber
Jacob Sorber
  • 291
  • 10 333 811
I Am Hiring!
Patreon ➤ www.patreon.com/jacobsorber
Courses ➤ jacobsorber.thinkific.com
Website ➤ www.jacobsorber.com
---
The Job Post:
jobs.clemson.edu/psc/ps/JOBS/EXT/c/HRS_HRAM_FL.HRS_CG_SEARCH_FL.GBL?Page=HRS_APP_JBPST_FL&Action=U&SiteId=1&FOCUS=Applicant&JobOpeningId=108900&PostingSeq=1
Related Videos:
Advice: How not to email someone about a job: ua-cam.com/video/95AxKHcJrY4/v-deo.html
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
www.jacobsorber.com
people.cs.clemson.edu/~jsorber/
persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon --- [www.patreon.com/jacobsorber]
Source code is also available to Patreon supporters. --- [jsorber-youtube-source.herokuapp.com/]
Переглядів: 6 802

Відео

A design pattern for cleaner recursive functions.
Переглядів 6 тис.Місяць тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com A design pattern for cleaner recursive functions. // A lot of new programmers struggle with their first recursive functions. This video shows you how to address one common challenge while cleaning up your code a bit. Welcome! I post videos that help you learn to program and become a more conf...
Student programmers, ChatGPT is not your friend
Переглядів 11 тис.3 місяці тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com Student programmers, ChatGPT is not your friend // All the rage or an apocalyptic harbinger of doom, people are loving and hating generative AI. This video talks about why using generative AI tools as a student programmer is probably a not a great idea-useful to a skilled developer, but as a ...
How to sort part of an array in C
Переглядів 5 тис.4 місяці тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com How to sort part of an array in C // in the last video we talked about sorting in C, using qsort. This video follows up on that one to look at sorting just a portion of an array. Related Videos: Sorting video: ua-cam.com/video/X-mSc_xZXOE/v-deo.html Welcome! I post videos that help you learn ...
Sorting in C: Why the double pointers when sorting pointers? (qsort)
Переглядів 8 тис.5 місяців тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com Sorting in C: Why the double pointers when sorting pointers? (qsort, mergesort, heapsort) - in this video we're looking at the built-in sorting functions in the C standard library (specifically qsort) and a common source of confusion (double pointers) when using them. Welcome! I post videos t...
How to keep Programming from Hurting You.
Переглядів 7 тис.5 місяців тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com Monitors used in the videos: BenQ GW3290QT - www.benq.com/en-us/monitor/home/gw3290qt.html BenQ GW2790QT - www.benq.com/en-us/monitor/home/gw2790qt.html Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems t...
How do I Set, Clear, and Toggle a Single Bit?
Переглядів 7 тис.6 місяців тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com Related Videos: Access a Single Bit: ua-cam.com/video/ciio80nkjB8/v-deo.html Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating system...
How does fork work with open files?
Переглядів 9 тис.8 місяців тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com How does fork work with open files? // Fork clones processes. We've talked about that before, and we know that fork copies a process's memory, but what happens with open file handles? In this video, I'll provide a little insight. Related Videos: Fork: ua-cam.com/video/ss1-REMJ9GA/v-deo.html M...
How do I access a single bit?
Переглядів 19 тис.8 місяців тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com How do I access a single bit? // Bitwise operations can be a bit frustrating for new programmers. This video shows you a few ways to access a single bit, usually within a bitfield or bitvector. Related Videos: Bit Fields: ua-cam.com/video/aMAM5vL7wTs/v-deo.html Welcome! I post videos that hel...
How to make memory read-only in your C programs.
Переглядів 19 тис.8 місяців тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com How to make memory read-only in your C programs // most of the memory we use in our C programs is readable and writable, but sometimes you want to protect some memory and prevent yourself (or some buggy or malicious code) from changing it. This video shows you how. Related Videos: Shared Memo...
Another way to check pointers at runtime in C
Переглядів 12 тис.9 місяців тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com Another way to check pointers at runtime in C // We're talking about pointer checking again, mostly as an exploration of fork and processes, but also because it's just interesting and something we don't often do. I hope it's enlightening. Related Videos: Previous pointer checking video: ua-ca...
Is the C programming language still worth learning?
Переглядів 88 тис.9 місяців тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com Is the C programming language still worth learning? C is old (well by program language standards), and people often ask if it's worth learning, or if it's on its way out. This video talks about some of C's strengths and weaknesses. Related Videos: Welcome! I post videos that help you learn to...
Batteryless computing, conferences, and the Maui fires (with Prof. Josiah Hester)
Переглядів 2,6 тис.9 місяців тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com Related Videos: Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get un...
The right way to define a C function with no arguments
Переглядів 33 тис.11 місяців тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com The right way to define a C function with no arguments. // Most new programmers (and many old programmers - me) define functions with no arguments with just an empty argument list. There's a better way, and this video is here to talk about it. Welcome! I post videos that help you learn to pro...
What is a function prototype in C
Переглядів 16 тис.11 місяців тому
Patreon ➤ www.patreon.com/jacobsorber Courses ➤ jacobsorber.thinkific.com Website ➤ www.jacobsorber.com What is a function prototype in C // Function prototypes often catch new C and C programmers by surprise. This video is an attempt to clear things up. Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems top...
Making variables atomic in C
Переглядів 36 тис.Рік тому
Making variables atomic in C
How to get an IP address from a host name? (Example in C)
Переглядів 11 тис.Рік тому
How to get an IP address from a host name? (Example in C)
Is it concurrent or parallel?
Переглядів 19 тис.Рік тому
Is it concurrent or parallel?
Binary data exercise: how to tell if a file is a jpeg?
Переглядів 13 тис.Рік тому
Binary data exercise: how to tell if a file is a jpeg?
About those Scary Programming Words
Переглядів 6 тис.Рік тому
About those Scary Programming Words
find memory errors quickly. (-fsanitize, addresssanitizer)
Переглядів 16 тис.Рік тому
find memory errors quickly. (-fsanitize, addresssanitizer)
How not to email someone about a job.
Переглядів 6 тис.Рік тому
How not to email someone about a job.
Does it matter what hash function I use? (hash table example in c)
Переглядів 6 тис.Рік тому
Does it matter what hash function I use? (hash table example in c)
A Guided Meditation for Programmers
Переглядів 6 тис.Рік тому
A Guided Meditation for Programmers
Fixing our "better" hash table's memory leaks (in c)
Переглядів 5 тис.Рік тому
Fixing our "better" hash table's memory leaks (in c)
A better hash table (in C)
Переглядів 27 тис.Рік тому
A better hash table (in C)
How to keep your child from becoming a zombie process (C example)?
Переглядів 9 тис.Рік тому
How to keep your child from becoming a zombie process (C example)?
Sockets and Pipes Look Like Files (Unix/fdopen)
Переглядів 19 тис.Рік тому
Sockets and Pipes Look Like Files (Unix/fdopen)
Your Variables are Not Real.
Переглядів 17 тис.Рік тому
Your Variables are Not Real.
Scanf scansets, and reading a CSV file in C (fixed)
Переглядів 10 тис.Рік тому
Scanf scansets, and reading a CSV file in C (fixed)

КОМЕНТАРІ

  • @budiardjo6610
    @budiardjo6610 20 годин тому

    it is a huge amount of knowledge

  • @marcusp5345
    @marcusp5345 День тому

    C is the Vanilla World of Warcraft of programming.

  • @silloo2072
    @silloo2072 4 дні тому

    What dies bork means?

  • @user-it8yh8tu7d
    @user-it8yh8tu7d 4 дні тому

    The binary exploitation topics landed me here. It appears unlike the stack visualizations for heap calls are rare.

  • @ironmonkey1990
    @ironmonkey1990 4 дні тому

    Thank you!

  • @godlyradmehr2004
    @godlyradmehr2004 4 дні тому

    This video was really helpful, to understand semaphore in my os course ❤❤

  • @programmertinkerer
    @programmertinkerer 4 дні тому

    C is still useful. Though, front-end stuff are more popular and get paid better if not much better.

  • @rui1863
    @rui1863 5 днів тому

    bool isRelevant = c?1:1;

  • @noweare1
    @noweare1 5 днів тому

    C doesn't have a bunch of libraries like python so you have to go out and find them and test them to make sure they work properly.

  • @noweare1
    @noweare1 5 днів тому

    If you want to really learn how a computer works program in assembly. C is too high level to learn how computers work.

  • @unperrier5998
    @unperrier5998 5 днів тому

    Hi Jacob, are you planning on doing more videos? In 2024 the number of vids as plummetted. You must be busy doing something else and I was just wondering what' sthe status quo.

  • @kevinkkirimii
    @kevinkkirimii 5 днів тому

    3:23 my favourite part of these videos.

  • @noweare1
    @noweare1 5 днів тому

    Whomever came up with the C++ syntax just wanted to scare people. It is a real turn off for me. Not intuitive at all.

  • @alexandermacleod7810
    @alexandermacleod7810 8 днів тому

    The other nice thing about C for learning to code well is that with Python you can get away for a time with writing sloppy illegible code but C really forces you to pay attention to what you're writing, how you write it and how you structure it other wise it likely won't even run.

  • @FacundoTroitero
    @FacundoTroitero 8 днів тому

    Jacob has the face of a happy little boy

  • @OMNI_INFINITY
    @OMNI_INFINITY 9 днів тому

    *WHY would char** point to a 2D array? Can explain the logic in that? That wasn't explained in that video.*

  • @OMNI_INFINITY
    @OMNI_INFINITY 9 днів тому

    *Comment 100! Yay! So it honestly looks like C already had a way to pass by ref and so there had to be a distinct way to pass a pointer by ref, so thus ** when passing a pointer by ref. Seems logical?*

  • @SaiMouli034
    @SaiMouli034 9 днів тому

    Nice explanation

  • @rohithbhandari7836
    @rohithbhandari7836 9 днів тому

    What is the difference between inline functions and macro like function?

  • @aakashs1806
    @aakashs1806 9 днів тому

    You can use adjaceny matrix (2d array) adjacency list, compact list for graph representation.

  • @JuanpiSLD
    @JuanpiSLD 10 днів тому

    clear and concise 👏

  • @tianned
    @tianned 10 днів тому

    5:27 spoiler. no, it still wont find a library

  • @romangeneral23
    @romangeneral23 10 днів тому

    No

  • @JeersNX
    @JeersNX 10 днів тому

    I remember this like so: "I fork to get children", please, do not remove "to get" in that sentence!

  • @Muhammed.Abd.
    @Muhammed.Abd. 10 днів тому

    I have seen arrays of function pointers used in Embedded, Can't say it way easy to understand but man it was elegant, like a masterpiece.

  • @NimaqAlizadeh
    @NimaqAlizadeh 10 днів тому

    Nice 🎉

  • @chvolow
    @chvolow 11 днів тому

    Ah man... first time in my life I've wished I lived in SC. Btw, Clemson could sure use some web devs on their job board 😅

  • @rohithbhandari7836
    @rohithbhandari7836 12 днів тому

    Calloc allocates n+1 bytes of memory to buffer How does buffer is able to hold more than the size of allocated bytes ? For eg. when n=2 it allocates 3 bytes But how does buffer store 00, 01,02,03,04......

  • @NH-ij8dz
    @NH-ij8dz 12 днів тому

    C styled C++ if you want to use C++. C is a nightmare to work with with even basic stuff like taking an arbitrary length string taking 10-100x the lines of code of any other language. Modern C++ is a bloated mess. Programming in a C style with std string, vector and unique ptrs is the only way to make either language nice to work with imo.

  • @WiseWeeabo
    @WiseWeeabo 12 днів тому

    I love writing in C/C#, it's such a great language.

  • @ramakrishna4092
    @ramakrishna4092 13 днів тому

    // While practicing functions, I encountered an error. Can you explain why? // I tried using `void` as an argument in the function call. // Why can't `void` be used this way, and what is the proper way to call a function that takes no arguments? void myFunction(void) { // Function body } int main() { myFunction(void); // Why is this incorrect? return 0; }

  • @samjohnson5044
    @samjohnson5044 13 днів тому

    I'm just a regular guy, but my intuition tells me that if two sisters don't get along, it's probably because of longstanding emotions that extend beyond an inability to encapsulate data! More likely, " I will never talk to you again because you stole my pointer!"

  • @saultube44
    @saultube44 14 днів тому

    Yet another: Is assembly worthy? For the 10,000th time 😒

  • @DemoboyOot
    @DemoboyOot 14 днів тому

    8:28 "pointers and arrays are almost exactly the same thing" This is a blatant lie. A pointer is a block of data containing an address. It will be size 1 byte for 8 bit machines, 4 bytes for 32 bit, 8 bytes for 64 bit, etc. An array is a block of data of any type and can be any size. It is true that an array names are similar to a pointer, and array syntax is similar to pointer arithmetic, but pointers and arrays are vastly different. If someone wants to make a video on how to dereference a pointer to a pointer of 3d pointers using pointer syntax, array me to it.

  • @NSResponder
    @NSResponder 15 днів тому

    Not Apple's fault that you choose to stick to your stone knives and bearskins.

  • @NSResponder
    @NSResponder 15 днів тому

    So, you're not using the tools that apple provides at no cost, and you're complaining that GDB doesn't work well? You know GDB is open source, right? Why don't you fix it?

    • @JacobSorber
      @JacobSorber 8 днів тому

      I think somebody needs a hug.

    • @NSResponder
      @NSResponder 8 днів тому

      @@JacobSorber Does that pass for a clever rejoinder in your social milieu?

  • @juanmamani2110
    @juanmamani2110 15 днів тому

    "Long life to C"

  • @KaspianBerheimBrudin-ny4ge
    @KaspianBerheimBrudin-ny4ge 15 днів тому

    If you channel a 4-bit number through a 4bit decoder and then set the appropiate bits for a 7segment display, you can show a binary number in hex. Super easy to expand.

  • @AmolGautam
    @AmolGautam 16 днів тому

    thank you

  • @ashishjog
    @ashishjog 16 днів тому

    Are there any remote positions?

    • @JacobSorber
      @JacobSorber 8 днів тому

      nope. At least with my lab, we just have an in-person position.

  • @AminKamali7
    @AminKamali7 17 днів тому

    Bravo!!

  • @simonepernice8059
    @simonepernice8059 18 днів тому

    You should free the buffer within the helper function otherwise it will leak memory every time it is called

  • @PhilDietz
    @PhilDietz 19 днів тому

    If you know C then you know UNIX. They are tied closely. No ones using Ruby to open posix message queues.

  • @error0.349
    @error0.349 19 днів тому

    Legend 👍👍👍👍📈📈📈

  • @AdvaTced
    @AdvaTced 20 днів тому

    lol, The most important thing you missed here, Which is the file descriptor fd of the socket that have been opened by us as the socket of the client, This guide/explanation is dead when you reached the 7:53 and when you said "we just get from the `http_get` function, What actually is inside this `http_get` is that we're opening a socket and sending an HTTP 1.1 / get request via ***socket**** so we do open a fd which is the socket id that retrived and than we're openning the fdopen file stream of this particular process file descriptor for the particular client. you just didn't show anything about it, and it's a big miss, And this is the WHOLE POINT of this video. what you have done there is to ESTABLISHING a connection to the webserver and retrive data from it, and you streamed The data that have been received to a Unix domain socket... AND this Unix domain socket has an open fd for this particular process! You didn't explain that. THIS IS SUPER important. I'm giving 6/10 to this video.

  • @lime2939
    @lime2939 20 днів тому

    But isn't division more expensive than comparison? Especially in context of buffers, where we want maximum performance?

  • @lowlevelcodingch
    @lowlevelcodingch 20 днів тому

    restrict, while it is good in some contexts, it isnt nessecarily useful

  • @rmcgraw7943
    @rmcgraw7943 21 день тому

    The way I think of it is that Parallelism is the parent of concurrency. That is, parallelism deals with multi-threading, and is constrained by hardware implementations; to effectively process task in parallel, task run at the same time and should be divided to as atomic as possible, accessing no shared (or unprotected/locked) data simultaneously. Concurrency could or could not timeslice between task, depending on the Task Partitioner, hyperthreading, etc, but it does not concern itself with the partitioning of tasks/data; concurrency IS running things while parallel is the identification of how things can be run in a thread safe manner, concurrently. It’s been a while since I worked with System.Threading namespace, but that’s how I remember it.

  • @MyApps-uf1dz
    @MyApps-uf1dz 21 день тому

    I'm using it for maths - sometimes it makes mistakes, I mostly research the stuff beforehand and ask it to double-check the answers, sometimes when I don't have the info though, I ask it to explain - it's better than nothing, I wish I could have a human teacher

  • @Erza-nk4rn
    @Erza-nk4rn 21 день тому

    I study computer science and find this very itneresting. Do i have to be an electro engineer for this? Is there a course on embeded i can take?