Hi fellow bees! Soon Ill start working on a project with my group at uni. It will be long and hard journey and I will have to relearn python, as I havent used it much. But I am looking forward to it. The project itself is about signal analysis form EEG scanner to try and decode information hidden in and use it as a mean of prostethics control. I hope so much that we will get something usefull done with it! :3
- ds12 ( @ds12@beehaw.org ) 4•1 year ago
Sweet, that’s awesome! What are you studying at Uni?
When I was learning to code, I always wished that I could learn while applying it to solve “real world” problems!
I am studying Mechatronics, and I do that project with people from Biomedical Engineering
- flatbield ( @furrowsofar@beehaw.org ) 2•1 year ago
Python is pretty easy to learn especially if your a good programmer in another language. The thing that is more complicated is deciding on libraries. Signal processing maybe numpy, scipy, and matplotlib. You may find numba useful too if you need more speed.
Best of luck and welcome.
I mean I am comming from c and c++ so the python is bit problematic to me, as it does many things by itself without telling me explitly, and I need to remember it
- Dominic ( @Dominic@beehaw.org ) 2•1 year ago
It’s an adjustment, but you’ll get used to it.
I think the most confusing thing in Python is how assignment works (and how function parameters work, because Python is basically “pass by assignment”).
Immutable types (usually trivial types such as
bool
,int
,float
,str
,tuple
, etc.) create copies when they’re assigned (and are pass-by-value).Mutable types (
dict
,list
,set
, functions, classes, instances of classes) are assigned by reference (and are pass-by-reference).It’s very easy to trip yourself up by passing a dictionary into a function, modifying it in the function, and not realizing those those modifications will live forever. If this happens to you, start experimenting with the
is
operator. - flatbield ( @furrowsofar@beehaw.org ) 2•1 year ago
The getting good at it can take time. I personally found learning it took a couple of days (based on reading the tutorial in the doc and skimming the standard library), but the getting good took 6 to 9 months. What I hope you will find in the end is that your code generation speed with Python is about 5X that of C, and that it will feel much more brain to code like. My experience anyway. The down side is that your code will run 1% to 5% of the speed of C code. Usually that is not a problem but when it is, the solution is libraries, numba, and writing C extensions that are compiled with well chosen compiler flags (exact architecture, vectorization, autoparallel, and fastmath for example).
I mean I get the code writing spead, but the C just speaks to me is such a way. Like I really do think close to algorithms and what happens in memory and stuff when I write, so the lower lvl languages kinda work better for me. However python for data analysis is unmatched, especialy with all the aviable libraries. And also now we try to make proof of concept, but later we will need to try and ditch python for something fast enough for real time.
- flatbield ( @furrowsofar@beehaw.org ) 1•1 year ago
Yes. Personally I think favorite languages and kinds of development are kind of personal. There are people that just love C and assembler for example. I have done both and there are aspects of it that I like too. On the other hand my sensibilities are more of an application programmer. I never liked Pascal but there was one Pascal discipline that I always strongly identified with and that was that code should look like what it does and that one should only optimize when needed as it tends to take developer time and destroy readability. On the other hand I have known C programmers that love the ability to write compact stuff in C that is almost unreadable. I relate to that some too in that I can be a lot of fun to optimize a piece of code but it is not what drives me. Not saying what your sensibilities have to be… just giving an example.
For what it is worth, for me, my favorite languages over the years have been Fortran, PL/I, and Python. And I will add C to it for its ability to integrate well with the OS and platform, and do anything especially low level and fast. Especially true on Linux. I do not do Fortran or PL/I any more that is just history. I am a Python and C guy really now. I would like to look into Rust at some point also.
Yea, I am that kind who would love to play in C and assembler, but I didnt leanr any assembly yet tho, due to lack of need yet 😅. But I am quite young so I have plenty of time to learn it when needed