Giter Club home page Giter Club logo

Comments (11)

logankilpatrick avatar logankilpatrick commented on September 24, 2024 5
  1. How was your experience learning Julia? What was helpful while learning Julia? What did you struggle with? How did you tackle problems?
  • The biggest challenge for me learning Julia was that I did not learn it in a formal setting. This led to me having a bunch of gaps in basic level of understanding as to how I should do specific things in Julia. I think there were three things that helped me when I first started and countinue help me today:

    1. Reading the docs. Looking up different concepts on the Julia docs to better understand how a specific idea I already understood was implimented in Julia helped me a lot.
    2. Write code! It is really easy to get overwhelmed when learning a new language. The best way to overcome this in my opinion is by writing code in that language.
    3. Ask for help. No one knows everything but someone knows what you are looking for. The Julia community is next to none when it comes to helping. Whether it be on our community Slack, Stack Overflow, or Discourse, everyone wants you to succeed using the language so never hesitate to ask if you can not find an answer.
  1. In what ways did Julia differ from other languages you knew at the time? What was hard to learn? What did you have to unlearn? What syntax did you have to remap? What concepts carried over nicely?
  • One of the biggest differenced between Julia and the other languages I know is the package manager. I am still baffled in a lot of cases when I try to install external packages in other programming languages. While Julia's package manager is not perfect, the ease of use once you become acquainted with it is surely a productivity boost.
  • I will put myself out there with this one and expose myself a little here: I remeber writing a heuristic algorithm for my team at NASA for a few weeks as a baseline for our advanced solver. I felt like I was so close to having the right thing but for whatever reason I was getting errors and things just weren't working. I dug around and finally sent the code to my mentor who prompltly replied to my note that Julia uses 1 based array indexing rather than 0 based arrray indexing. I was baffled at the time because I thought that all counting in computer science had to start at 0. So, if you are new-ish to computer science and programming, dont make the same mistake as me :)
  • Coming from python, much of the syntax carries over with the nice addition of getting to write the word end at the actual end of a if of for loop. I like this so much that now when I write Python code, I put a commented out end statment at the end of where each section should end in Python. One of the cooler parts of Julia I learned about is the ability to apply operations on an entire array. Previously in something like Python, I would look through the entire array and make the desired change to each element whereas in Julia I can do something like fake_array .+ 5 which will increment all elements by 5.

The best thing you can do if you want to get started in Julia is to try and make stuff. Whether it be packages in some domain you have knowledge of, questions on Stack Overflow, or just basic programs for a class, making things and sharing them with the world is an awesome way of giving back to the community! Good luck on your Julia journey and always feel free to reachout for support/help along the way.

@iHiD

from julia.

Donkeyfish87 avatar Donkeyfish87 commented on September 24, 2024 4
  1. How was your experience learning Julia? What was helpful while learning Julia? What did you struggle with? How did you tackle problems?

Nicer than other languages I've dabbled in, but not sure how much of that comes from me being a better programmer in general. Probably one of the most helpful things was reading exercism solutions from other people after solving it myself. Or similar write-read cycle in Project Euler or Rosettacode.

  1. In what ways did Julia differ from other languages you knew at the time? What was hard to learn? What did you have to unlearn? What syntax did you have to remap? What concepts carried over nicely?

Unlearn that loops are evil, which is what I'm used to from Python/Matlab/R. Multiple dispatch and how to overload things was difficult as a new concept. Python has similar syntax so most carried over, except writing in, and or or and get error a bunch of times.

At my level I'm still learning basics like algorithms and data structures, which probably carries over regardless of language.

from julia.

SaschaMann avatar SaschaMann commented on September 24, 2024 2

Responded via email.

from julia.

Rigante-pl avatar Rigante-pl commented on September 24, 2024 2

I just started learning. And it's not like I'm advanced in other languages... so it's not a mater of adjusting syntax for me. I'm not sure If I'm target audience for this question, but here are some thoughts, about beginners perspective.

  1. Tracks are very challenging for true beginners. Yes, you learn awesome things, looking into other solutions. But it's very hard to see them, unless you solve the problem on your own. Mentors are amazing. But from obvious reasons, waiting for their response if you are stuck, can take a while. And sometimes it's very hard to solve something without a hint.

For example, if you learned another language, you probably know some regex. But if this is your first track, you have no idea that it even exist. Before you'll look into how to use it to solve your problem (which is like learning micro-language on its own), you need to know, that it's something you need.

Possible solutions:

  • recommended "micro- challenges" - something like pre-requirements. _"Before you try this challenge, we recommend you try this 4 . One-minute projects" - very simple tasks where starting code is 90% completed right after download... all you need to do is close the loop, add regex, or even use proper indexing?
  • it's controversial, but maybe "uncompleted" student submissions, should be pushed at the beginning of the queue? I know, everybody are waiting for a mentor... but it's clear indication that someone is "stuck". If you don't help him/her soon, he/she may not try again.
  1. ** please make it mandatory to provide precise information about expected input and output ** - It's probably obvious, to you... just one look into test file right? But for beginners the test code is hard to decipher. Extremely demotivating if you're sure, that you have the right answer, but the test reject it due to wrong type, whitespace, or other "X" != 'X' type situation. And most project are very cryptic about inputs and outputs (refer to "triangles" project for example)

  2. It's related to the previous one... please teach testing sooner (it'll probably increase the number of contributors as well - everybody has Ideas for a project... designing the test is a challenge).

  3. That one is Julia specific: Do's and don't's of typing:

  • Python is slow, because no types
  • Numpy is faster, because arrays are one-type arrays
  • Julia is fast, and it can use types if you want...
    Conclusion: You should add types because it'll make your code faster....

And it isn't true, is it? It seems that Julia can do some fun things thanks to the functions that behave differently depending on the input type. It would be fun to see the challenge that take advantage of this.

That's it for now :)

Thank you for your amazing job!

from julia.

iHiD avatar iHiD commented on September 24, 2024 2

Hi @Rigante-pl Thanks for your comments. Very helpful to read. A lot of what you've said gets addressed in v3 of Exercism (coming soon), which has more formal "Concepts" that we teach with new exercises, focussed on giving clear instructions rather than relying on students using the tests. In fact we don't even show tests in Concept Exercises so you don't have to think about that. Also, a lot of what you say is true for more experienced developers, not just absolute beginners - learning a new language can introduce a whole load of new ideas that feel very familiar to more experienced people in that language. Please give v3 a good test once it's launched and let us know where you feel the areas we could improve are :)

from julia.

iHiD avatar iHiD commented on September 24, 2024 1

But I'm a little disappointed that it's going to be all interactive challenges on the web-page

It's not. The CLI is still there exactly the same as before :)

from julia.

Rigante-pl avatar Rigante-pl commented on September 24, 2024

Hi @iHiD, yes, I discovered a post about planned changes in v3 soon after I wrote it. Those are all great news. I do my best to test once it's released. But I'm a little disappointed that it's going to be all interactive challenges on the web-page. I know, It's a much smaller entry barrier. But instructions how to install, run, and submit projects are very clear now, and doing it makes me feel like I'm a real developer :) Like I'm lurking into arcane :)

Online exercises are great, but it can feel like doing Sudoku sometimes.

Congratulations you are at 10th level. Now please write siple program on your own.
...
...
... how?

I think there is some tangible value in learning how to work with terminal, file, editor...

from julia.

ErikSchierboom avatar ErikSchierboom commented on September 24, 2024

We're closing this issue as it was part of our research for the v3 version of Exercism which has just been released.

Thanks everyone for chipping in! It has been greatly appreciated.

from julia.

ErikSchierboom avatar ErikSchierboom commented on September 24, 2024

We're closing this issue as it was part of our research for the v3 version of Exercism which has just been released.

Thanks everyone for chipping in! It has been greatly appreciated.

from julia.

SaschaMann avatar SaschaMann commented on September 24, 2024

I like this issue and there's still plenty of room in the WIP curriculum where it could be useful, so I'm gonna leave it up anyway.

from julia.

ErikSchierboom avatar ErikSchierboom commented on September 24, 2024

Sure!

from julia.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.