• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Liutauras Vilda
  • Tim Cooke
  • Jeanne Boyarsky
  • Bear Bibeault
Sheriffs:
  • Knute Snortum
  • paul wheaton
  • Devaka Cooray
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Ron McLeod
  • Piet Souris
  • Ganesh Patekar
Bartenders:
  • Tim Holloway
  • Carey Brown
  • salvin francis

CodeRanch codes

 
Rancher
Posts: 89
13
Scala Eclipse IDE MySQL Database Tomcat Server Chrome Java Windows
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
So my favorite thing about coming to the ranch is the abundance of practical information provided by the everyone here. Things like code conventions, design patterns, and interesting ways to solve problems are something that's plentiful here. So, as a way to make these interactions even better I thought it might be a good idea to have a group programming discussion with the task of building a small application. Think something like Coderanch codes a Java servlet, or a basic spring project or a simple GUI. We could have volunteers be assigned sections and start a discussion on what would be the best practices regarding design, as well as provide newbies exposure to some of the more common technologies in Java.

Thoughts? Opinions? Do you think I'm crazy?

-Zach
 
Bartender
Posts: 1868
81
Android IntelliJ IDE MySQL Database Chrome Java
  • Likes 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I like the idea, but I wonder how much work it is and how many people would actually use it?
Often times people show up, and ask questions without first searching or reading anything.

I suspect that some of this has already been done and can be found on these pages:
  • https://coderanch.com/wiki/659762/Start
  • https://coderanch.com/wiki/660086/Java-FAQ
  • https://coderanch.com/wiki/660089/Java-FAQ
  • https://coderanch.com/wiki/659853/Specification-URLs
  • https://coderanch.com/wiki/660021/Mac-OS-FAQ
  • https://coderanch.com/wiki/660146/Questions-Java-Ranch
  • https://coderanch.com/wiki/659873/Security-Faq
  • https://coderanch.com/wiki/659865/Servlets-Faq
  • Which can all be found here https://coderanch.com/f/153/Wiki along with many others.
     
    Zach Rode
    Rancher
    Posts: 89
    13
    Scala Eclipse IDE MySQL Database Tomcat Server Chrome Java Windows
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    I mean that's definitely an issue. I suspect the intended audience for this would mainly be the ranchers that have been around for a while but are still relatively new to programming. I agree you examples cover some of what I meant but I was thinking about this exercise trying to be more interactive. Maybe increasing the difficulty of the project would be the answer. A medium- difficulty project that the forum discusses, plans, and implements over the course of 1-3 months. We could have the possibility to vote and approaches and maybe the more junior ranchers could put forth code that the senior ranchers look at and comment on?

    Of course, as you mentioned, participants would be the biggest issue
     
    Saloon Keeper
    Posts: 10505
    224
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    I think you're forgetting that a large part of a project is not the product, but the project management. You need to keep track of issues, need commitment from participants, a repository for the code, and users that are late to the discussion will find it hard to track the discussion about the changes to the code in relation to the existing code base, without accessing the project history or pull requests off-site. Simply put, I think a forum is just not that good of a medium.

    It's probably easier for people who want to learn this way to actually start working on open source projects, and have their code commented on there.
     
    Sheriff
    Posts: 13685
    227
    Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    On the other hand, let's just say you were able to get people to go with you on this undertaking, how/where would we start?

    I'd think there would be some kind of discussion about what is going to be built, right? Maybe define a minimum set of features that you want to work on. Maybe define a timebox. There are plenty of options for doing the process and software configuration management.

    Tell me more about what you have in mind.
     
    Zach Rode
    Rancher
    Posts: 89
    13
    Scala Eclipse IDE MySQL Database Tomcat Server Chrome Java Windows
    • Likes 1
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    So, As you said, the first step would be defining a project. There's many things out there. Something with a degree of difficulty above beginner would be optimal because it would allow Senior devs, who find these kinds of things easy, to show junior and beginners that it is not an insurmountable task. Think web apps with some functionality, xml to pdf converter, simple machine learning (there is a kata on code wars that is perfect for this), maybe some applications of functional programming.  It doesn't have to be anything useful, just something for learning purposes

    After project selection, we would design the code. Start a thread where someone proposes ideas for designs, someone disagrees, give it a week to talk about the design and then vote for a volunteer to make a class diagram, or other appropriate UML for us to follow. Project management documents and goals could, and would, also be useful, but getting internet strangers to work together is already hard enough without a strict timeline. So, it might not be necessary.


    Then we would split of a chunk, a class or slightly larger section of the program, discuss it for a week or two, assign methods to different users, and build it. Rinse and repeat until we have an application we've built together.


    Again, the purpose of this is to allow senior guys and gals to disseminate all those useful little tidbits you've gathered over the years, and allow juniors to see them in an applied and relevant manner to what they are currently doing.

    Everything is open for suggestion of course. It might not be practical if we worked out the details but I can definitely see it being beneficial if it worked out like I think it might.

    -Zach
     
    Junilu Lacar
    Sheriff
    Posts: 13685
    227
    Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Zach Rode wrote:It doesn't have to be anything useful, just something for learning purposes


    On the contrary, I think being useful can actually be useful, even for learning purposes. To this day I still know algebra because I have found it useful. I have forgotten pretty much all my other higher math on which I spent a better part of my time as a engineering student because I have never had a need to use them.

    After project selection, we would design the code. Start a thread where someone proposes ideas for designs, someone disagrees, give it a week to talk about the design and then vote for a volunteer to make a class diagram, or other appropriate UML for us to follow. Project management documents and goals could, and would, also be useful, but getting internet strangers to work together is already hard enough without a strict timeline. So, it might not be necessary.


    I'm not much of a fan of Big Design Up Front (BDUF) - a context diagram or two to get the wheels greased up is usually enough for me, especially if we're going to do this part time. Getting internet strangers to work probably works better if you're actually doing work. Discussions are more fruitful when they revolve around actual code, not hypothetical designs.

    Then we would split of a chunk, a class or slightly larger section of the program, discuss it for a week or two, assign methods to different users, and build it. Rinse and repeat until we have an application we've built together.


    I'm rather interested in how this might work if we did the work collaboratively, somehow try to do some form of pairing on the work.

    Again, the purpose of this is to allow senior guys and gals to disseminate all those useful little tidbits you've gathered over the years, and allow juniors to see them in an applied and relevant manner to what they are currently doing.


    Yes, and this is what is most interesting to me about this. Killing multiple birds with one stone, I'm also interested in seeing what this might produce that can be carried over to our friends in academia.

    Everything is open for suggestion of course. It might not be practical if we worked out the details but I can definitely see it being beneficial if it worked out like I think it might


    Of course. See all of the above. I'm game if you are. When do we start? What forum do we occupy or do you want a separate forum for this?
     
    Zach Rode
    Rancher
    Posts: 89
    13
    Scala Eclipse IDE MySQL Database Tomcat Server Chrome Java Windows
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Junilu Lacar wrote:
    I'm not much of a fan of Big Design Up Front (BDUF) - a context diagram or two to get the wheels greased up is usually enough for me, especially if we're going to do this part time. Getting internet strangers to work probably works better if you're actually doing work. Discussions are more fruitful when they revolve around actual code, not hypothetical designs.?



    See this is exactly what I mean, we are already accomplishing the given task.

    Of course. See all of the above. I'm game if you are. When do we start? What forum do we occupy or do you want a separate forum for this?



    I'm game. I think weekends will probably be the time when most interaction happens. but we can start now with a different thread.

    As for forum, I think we could use already existing forums for the most part. If it takes off, a separate forum might be prudent, but that's an issue for future Zach, and others. Any projects relating to specific technologies could go into those specific forums, or doing it all in general java for the visibility might be a good solution too. I think we will most likely need a bookkeeping thread also, probably one for each project, that links to threads for different parts.

    I think the first step is deciding a project, while also further defining the mechanisms for this to take place.

    I'm also interested in seeing what this might produce that can be carried over to our friends in academia.



    As a side note, what do you mean by this?

    -Zach
     
    Pete Letkeman
    Bartender
    Posts: 1868
    81
    Android IntelliJ IDE MySQL Database Chrome Java
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    I would suggest a new forum area and if this goes well this could then instantiated with other languages/frameworks like Kotlin, Python, Android, JavaScript etc
     
    Marshal
    Posts: 7075
    491
    Mac OS X VI Editor BSD Linux
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Where the code going to reside? Some of repository needs to be created?

    Zach Rode wrote:I think the first step is deciding a project, while also further defining the mechanisms for this to take place.


    Probably we could brainstorm and later on create some cow poll so people could vote?
     
    Zach Rode
    Rancher
    Posts: 89
    13
    Scala Eclipse IDE MySQL Database Tomcat Server Chrome Java Windows
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    A git repository would probably be needed for anything more that a class for sure. I think one of the main goals should be keeping the barrier to entry relatively low, so that new people can jump in quickly. With that being said, version control is something people need to know anyways, and it isn't difficult to learn how to pull and push a project.

    Probably we could brainstorm and later on create some cow poll so people could vote?



    That's an excellent idea. If the mods want to create a new forum, where/ how would we do that?
     
    Junilu Lacar
    Sheriff
    Posts: 13685
    227
    Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    How about I create a new forum under "Open Source" and call it like "Ranch Corral" with a description of "The Ranch's own open source project to help you learn by doing." or "The Ranch's own open source project where you can learn by doing."

    Opening up to other suggestions for name and description.
     
    Junilu Lacar
    Sheriff
    Posts: 13685
    227
    Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Zach Rode wrote:

    I'm also interested in seeing what this might produce that can be carried over to our friends in academia.


    As a side note, what do you mean by this?



    I have been in touch with university professors in Germany who were involved with the research that was the basis for the book "Java by Comparison" for which we had a book promotion a few weeks or months back.  They are looking for ways to teach their students better clean coding practices.  They experimented with doing code reviews on the work students submitted. I was sent four sets of projects to review and I gave them some fairly detailed feedback that they say was very useful.

    I want to continue that collaboration and have a feeling this open source project can play into that effort some way.
     
    Zach Rode
    Rancher
    Posts: 89
    13
    Scala Eclipse IDE MySQL Database Tomcat Server Chrome Java Windows
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    That's a great name for the forum. So the first post will be about brainstorming projects ideas. I'm ready to set it into motion if y'all agree that it is something you would like to take part in.

    as another side note, I guess anything we produce would need to be marked with an open source license(most likely the no monetary gain kind)?

    I appreciate all your ideas, thus far

    -Zach
     
    Liutauras Vilda
    Marshal
    Posts: 7075
    491
    Mac OS X VI Editor BSD Linux
    • Likes 1
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    I'm certainly in.

    Note: awaiting for forum confirmation from at least one other member of staff, once approved (hopefully) - will create one along with Junilu's suggested naming, and will make Junilu as a primary moderator.
     
    Junilu Lacar
    Sheriff
    Posts: 13685
    227
    Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
    • Likes 3
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    I went ahead and created the new forum.  

    Continue discussion here: https://coderanch.com/f/206/ranch-corral
     
    Pete Letkeman
    Bartender
    Posts: 1868
    81
    Android IntelliJ IDE MySQL Database Chrome Java
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Mooo!

    Your posting was just mentioned in the July 2018 CodeRanch Journal and for that you get a cow.
     
    grapes are vegan food pellets. Eat this tiny ad:
    Enterprise-grade Excel API for Java
    https://products.aspose.com/cells/java
    • Post Reply Bookmark Topic Watch Topic
    • New Topic
    Boost this thread!