I've been developing web applications for 5 years, and I found Go incredibly hard to get into. There is a lot of prerequisite knowledge required to do even a small bit of code in Go, and the Go community (in my experience!) has been unfriendly and sometimes even hostile toward my questions that I feel that I'm expected to know before I start Go development.
I have two questions:
1) Is there any community effort to bridge the gap between the systems-level knowledge required for effective Go development and the (excellently written) intro docs found on Golang.org? If so, how can I help out?
2) Is there a deliberate effort to keep "new" or "Rails"-style (hereafter "blurb") programmers out of the language until all of the kinks are worked out in the language, toolset, and best practices? Sorry if this sounds tinfoil-y, but it's the only explanation I can think of that would justify the general apathetic attitude toward articulating the software engineering principles behind why Go does the things it does?
I can provide some general examples if your response to this is confusion.
Thanks!
-Chris
Chris, I'm sorry to hear that. We've tried to make Go approachable for most programmers; the Tour of Go in particular is meant to provide a friendly introduction. If there are examples of problems please share, or even file issues for particular pages or docs that need improvement.
I admit I don't know what distinguishes a Rails programmer from other programmers. But if you want to get into Go, we want to remove any unnecessary barriers.
--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
I've rarely see any hostility unless it has been provoked. Directness, yes... it's easy to confuse those two on the internet.
>
> I have two questions:
>
> 1) Is there any community effort to bridge the gap between the systems-level knowledge required for effective Go development and the (excellently written) intro docs found on Golang.org? If so, how can I help out?
What do you mean by sytems level knowledge?
There are books for Go at beginner level, but I don't think I've seen a book targeted at non-programmers.
>
> 2) Is there a deliberate effort to keep "new" or "Rails"-style (hereafter "blurb") programmers out of the language until all of the kinks are worked out in the language, toolset, and best practices?
I'm not aware of any such instructions to do so.
> Sorry if this sounds tinfoil-y, but it's the only explanation I can think of that would justify the general apathetic attitude toward articulating the software engineering principles behind why Go does the things it does?
FAQ explains the major decisions quite well. There are plenty of explanations for other things on the mailing list.
>
> I can provide some general examples if your response to this is confusion.
These would add some clarity to your points.
>
> Thanks!
>
> -Chris
Chris, I'm sorry to hear that. We've tried to make Go approachable for most programmers; the Tour of Go in particular is meant to provide a friendly introduction. If there are examples of problems please share, or even file issues for particular pages or docs that need improvement.
I admit I don't know what distinguishes a Rails programmer from other programmers. But if you want to get into Go, we want to remove any unnecessary barriers.
On Jun 28, 2014 3:55 PM, "Christopher Johnson" <ckjoh...@gmail.com> wrote:Hey all,
I've been developing web applications for 5 years, and I found Go incredibly hard to get into. There is a lot of prerequisite knowledge required to do even a small bit of code in Go, and the Go community (in my experience!) has been unfriendly and sometimes even hostile toward my questions that I feel that I'm expected to know before I start Go development.
I have two questions:
1) Is there any community effort to bridge the gap between the systems-level knowledge required for effective Go development and the (excellently written) intro docs found on Golang.org? If so, how can I help out?
2) Is there a deliberate effort to keep "new" or "Rails"-style (hereafter "blurb") programmers out of the language until all of the kinks are worked out in the language, toolset, and best practices? Sorry if this sounds tinfoil-y, but it's the only explanation I can think of that would justify the general apathetic attitude toward articulating the software engineering principles behind why Go does the things it does?
"I have to say that the average helpfulness and sheer understanding of programming on this list far exceeds that of any other I've spent time on." - me
The updated version is on https://code.google.com/p/go-wiki/wiki/HowToAsk
--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
+egon
> Daniel Kahneman's book "Thinking Fast and Slow" is pretty good, particularly in this context for some of the discussion on how ease deteriorates careful thinking.
That one, I have read.
>
>
>
> On 29/06/2014, at 10:15 AM, "egon"
>
>
>
On 29/06/2014 1:40 PM, "Christopher Johnson" <ckjoh...@gmail.com> wrote:
>
> So I think a lot of us are on the same subject WRT to the process of learning. The high-level takeaway is that -- and I'm not picking on Go here -- there is a *substantial* amount of overlap between this discussion and the entire field of SAAS business development, specifically in regards to user experience design and marketing.
>
> If you think about learning as a "marketing funnel", and golang.org as your main "landing page", well...
>
> https://www.optimizely.com/
> https://mixpanel.com/
> http://golang.org/
>
> Compare and contrast. I *don't* think golang.org should end up looking like Optimizely (they are serving different purposes, to different audiences). Rather, I feel that if language adoption is a remotely important goal to anybody in the Go community, you could apply some extremely basic marketing/UX ideas and get some huge "returns" from an adoption perspective.
>
> Again, Not to pick on Go specifically -- almost every open source project or tool targeted to programmers looks like golang.org. This just happens to be the subject we're talking about at the moment.
>
> A low-hanging fruit -- add a little yellow warning box to the top of the existing golang.org design that says: "This site is oriented toward people with X and Y background in programming knowledge. To get up and running in Go, you might want to start with our other site, golang.edu, to give you a broader picture of how to get up and running in making Go applications"
>
What sort of concepts do you feel are the X's and Y's that should be part of a disclaimer? I think I am missing the point you are trying to make about Go requiring a whole bunch of prerequisite knowledge to learn.
Like I had previously mentioned, I came to Go as a python developer of 8+ years but I am not clear on what prerequisites are unique to learning Go as opposed to other less high level languages?
Interested in understanding this part of your claim.
> On Saturday, June 28, 2014 6:26:23 PM UTC-7, Christopher Johnson wrote:
>>
>> Hey, thanks for following up guys.
>>
>> To give you some context: I'm young (23), and have been teaching people web programming for about two years now. I've been thinking about learning for half a decade -- it became a subject I'm passionate about right around the time of my first CS course in college. If I seem frustrated or particularly "passionate" about this, it's because I've been told that I was "lazy" and "bad at asking questions" for most of my programming career from smarter guys like yourselves, and it always seems to be the same script: "you haven't put in the effort", or "learning is hard, it just takes time". Several times I thought that I was just too dumb to code well, and several times considered switching careers.
>>
>> Fast forward to today, and I've only in the last year or two "connected the dots" between what context I was missing to be an effective developer (For posterity: This coincided exactly with me buying a Macbook and leaving Windows). I now understand software on a far greater level than I had in the past. I've skyrocketed above my peers in terms of depth and breadth of SE knowledge, and I'm just now starting to realize that I don't think I was ever dumb, just that learning is complex and hard and not many people get the teaching angle right. Furthermore, if I tally up the time I spent flailing uselessly in college, I'd say I probably put in 5x the "effort" of my peers. Sal Khan talks about "swiss cheese gaps" in our knowledge, I think that's a pretty good metaphor to describe what's going on with a lot of developers who drop out of learning a new progamming thing.
>>
>> This is way out of scope of golang-nuts, and I'm not sure what the culture of mailing lists like this are like. Do I fork this discussion somewhere else, or is it cool to go on long tangets?
>>
>> In terms of practical programming curriculum, yes, there are several good paths online to getting newbies up and running. I start with noexcuselist.com -- it links to LPTHW, the Hartl tutorial for Rails, "Learn HTML & CSS", etc. I consider these tutorials to be "best of class" in terms of the material out there. They're far from perfect, but they're a cut above other auto-didactic methods of acquiring programming skill.
>>
>> Here's kind of my point though: Where is Golang on that list? It's not on the list, because the existing material out there to get into Go programming assumes a bunch of prior knowledge. Furthermore, I'm opinionated enough about communities to know that not everyone is actually interested in fully helping new people out, or that they just don't understand the problem of learning and how complicated it is. In some people -- not saying you guys are like this -- there is a sort of morbid enjoyment of watching newbies flail, probably because we flailed so much ourselves learning this stuff that we consider it an important part of the experience. This might have been true at some point -- since *good* teaching in the way we're describing it was scarce and hard to come by in the past, we think it's a necessary part of the learning process. It is not. The Web was invented, ostensibly, to solve this problem. From my experience, when I started learning Go about two years ago, I had built fully functional web applications in Java, ASP.NET, Rails, and node.js, and starting out with Go development made me feel like I was in CS101 all over again.
>>
>> My point with all of this is that learning, while complex, is not magic. There's tons of people dedicated to researching the problem. Norvig himself gave me a great term to Google about education: "bottom-up learning." It's a great lead to help us reason about how learning works on a cognitive level. You can read it, it's not super scary -- and it exactly describes the problem we're facing as teachers helping people become comfortable developing and thinking about software on the level we do.
>>
>> My subpoint is -- there is an incredible dearth of low-hanging fruit to bringing some of these ideas about learning to increasing Go adoption. I'd love to help work on the problem. In any case, I think I have some writing to do to connect these ideas about learning to problems experienced by community evangelists. Not to sound like a broken record, but if this is interesting to anybody following this list, please contact me. Email's in the...wait, this is an email, isn't it? Gah.
>>
>> -Chris
>>
>>
>> On Saturday, June 28, 2014 5:44:42 PM UTC-7, egon wrote:
>>>
>>> On Sunday, 29 June 2014 03:13:57 UTC+3, kortschak wrote:
>>> > What you are asking for here is not trivial, it took me over a decade of teaching experience to get even close to achieving this, and this is with face-to-face teaching where it is substantially easier than over-the-wire.
>>> >
>>>
>>> +1
>>>
>>> I only have 5 years teaching experience, I've been pondering those thoughts for a long time. I have no problem getting people over their gaps face-to-face, but scaling it to a class or doing it over internet is much more difficult. I've been slowly gathering those thoughts (https://github.com/egonelbre/spark/blob/master/basics-of-programming.rst), but that is still unfinished... I think I have figured out a better solution, but I still have to do some experiment runs with people... and still not quite sure how well it would work on an internet setting.
>>>
>>> I do understand what you (Cristopher) want to do, and there is value in it. But there are traps that people can fall into while writing those. Peter Norvig has a great article about it http://norvig.com/21-days.html . Best programming tutorial for non-programmers is currently LPTHW. It's a great thing to study before starting. I think it's possible to do similarly for any subject, but you need to figure out who you are exactly targeting.
>>>
>>> + egon
>>>
>>> >
>>> >
>>> > On 29/06/2014, at 9:28 AM, "Christopher Johnson" <ckjoh...@gmail.com> wrote:
>>> >
>>> >
>>> >
>>> >
>>> > Design is about getting in the heads of other people, and figuring out exactly what gap they have in their knowledge to get them to the next stage.
>
Hi Chris,a resource that I found particularly beginner friendy is http://www.golang-book.com/.I share the sentiment that most of the discussions in the group are very advanced and it is sometimes humiliating (esp. if you have thought that you have some expertise already) to not even understand the questions asked.OTOH - if you ignore the trolls - I always found some nice people who were willing to give a productive answer.If you speak English, there are really tons of resources on the web... Do you think we need a beginner specific mailing list?RegardStefan
Hey Sameer,I'm sorry if the original post came off as abrasive. I'll try to clarify.The current documentation and tutorials are actually very well written for understanding how to write Go code. What's missing, from my perspective, is a more holistic view of best practices behind how you orchestrate Go services across a system level. In my opinion, learning how to run Go applications on localhost is only one part of the puzzle to actually delivering production applications in Go.There doesn't seem to be any path from the golang.org website to a clear description / tutorial about system fundamentals -- and every time I've asked a question about anything not related explicitly to Go (Unix, deployment, file organization, security practices, higher-level performance considerations, etc.), there's a strong "RTFM" reaction that turns me off from learning more. I don't think this reaction is misplaced at all -- I tutor many people for general web development, so I understand the in-the-moment frustration of like "ugh, this is another layer we have to bring up and talk about... you might as well just go read The Unix Book and come back in a couple months".One example:In a Ruby deployment, you need a Ruby interpreter on the host containing your Rails server. In Go and other compiled languages, there is no need for a compiler on the server, so compiling cross-platform locally and SSHing a binary (or whatever) over the wire is a "pretty standard practice" -- something that's assumed about the deployment process you don't even think to bring it up or write a tutorial about it. However, deployment workflows are...complex. For instance, even though I'm a skilled web developer, it's not entirely clear to me how static assets are managed in this deployment workflow. Do they get compiled with the Go binary? I assume not. So is that a separate workflow / deployment task, distinct from the Go compilation? Rails benefits a lot (and often shoots itself in the foot) from handling asset compilation and service interoperation in the same step (I think adding .erb to asset files is an antipattern, but the angular-rails-templates is very nice.) Where do compilers like SASS et al fit into the "best practice" asset management flow for Go? Should they be on the server, or should you compile everything locally and only send compiled output?Like I said, I've gone and done my homework and I now know how *I* would handle these problems. But all of this is missing from the tutorial / docs / learning Go workflow, and it's not clear how you're supposed to write a simple, working web application with static assets without some of this advanced knowledge.So, to be clear here, what I'm talking about is the "User Experience" of what it's like to be a (skilled!) developer from other paradigms learning Go from scratch is...well, it's really hard, to say the least, and outright hostile if you want to be mean about it (and I do).In any case, this is something I'm passionate about, and I now have a lot of free time on my hands. If anybody is working on this, I'd be happy to help out (coding, design, writing, etc.). Or, perhaps wide adoption of Go is not an explicit goal of the Go community at this stage of its evolution. Or, another popular interpretation: Go wasn't meant to write "web applications", but merely focus on a subset of system-type tasks that you'd need system-level knowledge to do. Both of these are fine answers, but I just wanted to clarify what the goals of the community are before I start doing a bunch of work that isn't in line with the overall plan for what Go was meant to do (at least at this stage of its evolution).Hopefully that clarifies my complaint.-Chris
On Saturday, June 28, 2014 1:00:41 PM UTC-7, Sameer Ajmani wrote:
Chris, I'm sorry to hear that. We've tried to make Go approachable for most programmers; the Tour of Go in particular is meant to provide a friendly introduction. If there are examples of problems please share, or even file issues for particular pages or docs that need improvement.
I admit I don't know what distinguishes a Rails programmer from other programmers. But if you want to get into Go, we want to remove any unnecessary barriers.
On Jun 28, 2014 3:55 PM, "Christopher Johnson" <ckjoh...@gmail.com> wrote:
Hey all,
I've been developing web applications for 5 years, and I found Go incredibly hard to get into. There is a lot of prerequisite knowledge required to do even a small bit of code in Go, and the Go community (in my experience!) has been unfriendly and sometimes even hostile toward my questions that I feel that I'm expected to know before I start Go development.
I have two questions:
1) Is there any community effort to bridge the gap between the systems-level knowledge required for effective Go development and the (excellently written) intro docs found on Golang.org? If so, how can I help out?
2) Is there a deliberate effort to keep "new" or "Rails"-style (hereafter "blurb") programmers out of the language until all of the kinks are worked out in the language, toolset, and best practices? Sorry if this sounds tinfoil-y, but it's the only explanation I can think of that would justify the general apathetic attitude toward articulating the software engineering principles behind why Go does the things it does?
I can provide some general examples if your response to this is confusion.
Thanks!
-Chris
I can provide some general examples if your response to this is confusion.
Then you may be interested in case-based or problem-based learning
(google will help with those terms too). Despite the name of the latter,
they are focussed on not solving problems, but learning *how* to solve
problems, i.e. the process.
IMHO, I think you're blowing things a bit out of proportion. A lot of "newbie" questions evolve around things that the poster expects in the language because he/she knows them from other languages and environments. Typical topics are: package manager, dependency management, generics, fluent style, exceptions, debugger. Some of them also tend to get quite aggrevated when the community tells them "no, we don't have this right now and we're not sure if we want it at all"
So I think a lot of us are on the same subject WRT to the process of learning. The high-level takeaway is that -- and I'm not picking on Go here -- there is a *substantial* amount of overlap between this discussion and the entire field of SAAS business development, specifically in regards to user experience design and marketing.If you think about learning as a "marketing funnel", and golang.org as your main "landing page", well...Compare and contrast. I *don't* think golang.org should end up looking like Optimizely (they are serving different purposes, to different audiences). Rather, I feel that if language adoption is a remotely important goal to anybody in the Go community, you could apply some extremely basic marketing/UX ideas and get some huge "returns" from an adoption perspective.Again, Not to pick on Go specifically -- almost every open source project or tool targeted to programmers looks like golang.org. This just happens to be the subject we're talking about at the moment.A low-hanging fruit -- add a little yellow warning box to the top of the existing golang.org design that says: "This site is oriented toward people with X and Y background in programming knowledge. To get up and running in Go, you might want to start with our other site, golang.edu, to give you a broader picture of how to get up and running in making Go applications"
On Saturday, June 28, 2014 6:26:23 PM UTC-7, Christopher Johnson wrote:Hey, thanks for following up guys.To give you some context: I'm young (23), and have been teaching people web programming for about two years now. I've been thinking about learning for half a decade -- it became a subject I'm passionate about right around the time of my first CS course in college. If I seem frustrated or particularly "passionate" about this, it's because I've been told that I was "lazy" and "bad at asking questions" for most of my programming career from smarter guys like yourselves, and it always seems to be the same script: "you haven't put in the effort", or "learning is hard, it just takes time". Several times I thought that I was just too dumb to code well, and several times considered switching careers.
Fast forward to today, and I've only in the last year or two "connected the dots" between what context I was missing to be an effective developer (For posterity: This coincided exactly with me buying a Macbook and leaving Windows). I now understand software on a far greater level than I had in the past. I've skyrocketed above my peers in terms of depth and breadth of SE knowledge, and I'm just now starting to realize that I don't think I was ever dumb, just that learning is complex and hard and not many people get the teaching angle right. Furthermore, if I tally up the time I spent flailing uselessly in college, I'd say I probably put in 5x the "effort" of my peers. Sal Khan talks about "swiss cheese gaps" in our knowledge, I think that's a pretty good metaphor to describe what's going on with a lot of developers who drop out of learning a new progamming thing.This is way out of scope of golang-nuts, and I'm not sure what the culture of mailing lists like this are like. Do I fork this discussion somewhere else, or is it cool to go on long tangets?In terms of practical programming curriculum, yes, there are several good paths online to getting newbies up and running. I start with noexcuselist.com -- it links to LPTHW, the Hartl tutorial for Rails, "Learn HTML & CSS", etc. I consider these tutorials to be "best of class" in terms of the material out there. They're far from perfect, but they're a cut above other auto-didactic methods of acquiring programming skill.Here's kind of my point though: Where is Golang on that list? It's not on the list, because the existing material out there to get into Go programming assumes a bunch of prior knowledge. Furthermore, I'm opinionated enough about communities to know that not everyone is actually interested in fully helping new people out, or that they just don't understand the problem of learning and how complicated it is. In some people -- not saying you guys are like this -- there is a sort of morbid enjoyment of watching newbies flail, probably because we flailed so much ourselves learning this stuff that we consider it an important part of the experience. This might have been true at some point -- since *good* teaching in the way we're describing it was scarce and hard to come by in the past, we think it's a necessary part of the learning process. It is not. The Web was invented, ostensibly, to solve this problem. From my experience, when I started learning Go about two years ago, I had built fully functional web applications in Java, ASP.NET, Rails, and node.js, and starting out with Go development made me feel like I was in CS101 all over again.My point with all of this is that learning, while complex, is not magic. There's tons of people dedicated to researching the problem. Norvig himself gave me a great term to Google about education: "bottom-up learning." It's a great lead to help us reason about how learning works on a cognitive level. You can read it, it's not super scary -- and it exactly describes the problem we're facing as teachers helping people become comfortable developing and thinking about software on the level we do.My subpoint is -- there is an incredible dearth of low-hanging fruit to bringing some of these ideas about learning to increasing Go adoption. I'd love to help work on the problem. In any case, I think I have some writing to do to connect these ideas about learning to problems experienced by community evangelists. Not to sound like a broken record, but if this is interesting to anybody following this list, please contact me.
Hey all,I've been developing web applications for 5 years, and I found Go incredibly hard to get into. There is a lot of prerequisite knowledge required to do even a small bit of code in Go, and the Go community (in my experience!) has been unfriendly and sometimes even hostile toward my questions that I feel that I'm expected to know before I start Go development.
I have two questions:
1) Is there any community effort to bridge the gap between the systems-level knowledge required for effective Go development and the (excellently written) intro docs found on Golang.org? If so, how can I help out?
2) Is there a deliberate effort to keep "new" or "Rails"-style (hereafter "blurb") programmers out of the language until all of the kinks are worked out in the language, toolset, and best practices? Sorry if this sounds tinfoil-y, but it's the only explanation I can think of that would justify the general apathetic attitude toward articulating the software engineering principles behind why Go does the things it does?
I can provide some general examples if your response to this is confusion.
Thanks!
-Chris
I think there are two separate threads here:
1) make it easier to get started with Go for people coming from Web application programming, Ruby on Rails, etc. This includes better tutorials on building web apps with Go and perhaps more basic explanations for people unfamiliar with C-like languages, pointers, etc.
2) should Go market itself for a mass audience / strive for world domination? I'm pretty sure the answer to this is no. However, I agree Go could be marketed better, especially in domains where it excels, like writing servers that run on cloud platforms.
Thanks, all, for the thoughtful discussion.
S
--
I found the same when I started with go, the docs are not intuitive enough for new (web) programmers, and the community is so goddam boring and unfriendly. I have made quite a few posts on this forum and sometimes getting any helpful feedback is like getting blood out of a stone, while other languages are popular and almost everything has already been done in them.
This will all change once the market fully sinks it's teeth into go, and there will be new communities that are more friendly. Maybe by 2016-20 Go will be gaining a decent share of the market, so it wont be anytime soon. I would love to know the average age of Go programmers, I have a feeling it is probably around 40 years old.
Go is also used for a lot of different stuff, and a lot of people have experience in their particular application of go programming, so some aspects are very unsupported, and people often seem to want to keep their go code / solutions private as trade secrets.
--
Me too. It is a great community!
While I agree with the core point that more accessible documentation is good and needed I can do without the underlying assumptions about elitism and non existing constraints supposedly put in place by "the community".
There is no conspiracy here and if you want to change something in the community, for example views on learning and teaching, perhaps you would be more successful without the pretty aggressive stance.
It is a collaboration not a committee and I for one think that it may need what you bring but don't expect it to happen over night.
/Henrik
On Tuesday, July 1, 2014 12:43:56 AM UTC+2, Michael Jones wrote:
What I think are missing are a suite of sample programs to solve single-purpose tasks. This is a hallmark of the better self-help programming books. The C Programming Language book has this, so does Rob Pike and Brian Kernighan's The Unix Programming Environment. Some examples might be:
* construct and send an email.
* scan the file system to find all JPEGs or detect duplicates (just wrote this one this morning).
* serve static content
* serve dynamic content via templates
:
Also good would be unix bintools workalikes:
* cat
* col
* nm
:
With a few dozen highly-polished examples in each category, we would have a good bridge for newcomers.
What I think are missing are a suite of sample programs to solve single-purpose tasks. This is a hallmark of the better self-help programming books. The C Programming Language book has this, so does Rob Pike and Brian Kernighan's The Unix Programming Environment. Some examples might be:* construct and send an email.* scan the file system to find all JPEGs or detect duplicates (just wrote this one this morning).* serve static content* serve dynamic content via templates:
Also good would be unix bintools workalikes:* cat* col* nm:
With a few dozen highly-polished examples in each category, we would have a good bridge for newcomers.
"This whole "unfriendly to newbies" thing just seems as a poor excuse for "I have big gaps in my knowledge and skills regarding algorithms, data structures, computer architecture, and solid software design, and Go expects me to learn, which being a web programmer, I for some reason can't do, so Go sucks!"If I'll apologize for one thing here, it's about framing this as a Go problem. It's not a Go problem -- Go is nearly perfect. What I'm talking about is a Go community problem. And it's actually quite basic:A majority of Go programmers are stuck in the "go-to-school-slash-suffer-for-a-very-long-time" model of learning software development.
There are numerous ideas for how you'd, at a very minimum, provide some kind of "funnel" path from people discovering Go from various sources (Google, golang.org, podcasts, etc.), to leading them to the best materials out there about system development. However, I don't think anyone here would be interested in this, because it breaks the "you must struggle" constraint you've placed on development.
--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Hey Egon,Thanks for replying. Like I said, I feel pretty silly in the way that I opened this thread, since I've realized there might not be a lot of shared context between the marketing/UX/SaaS world and people here working really hard figuring out systems / language design problems.
Looking back, I definitely sounded way too arrogant and hostile to explaining myself at each step of the way. For some weird reason, I always conflated my frustrations with this systems-level stuff with Linus Torvalds' "fuck you show me the code" mentality, which I stupidly thought you would respond to positively. I think the "Linus" mentality is clearly not on display here, so I want to apologize for that.I would be interested in sketching out an outline of a "golang.edu" site with you and other interested parties. I'm absolutely swamped until about next Monday. Where would be a good forum to follow up with this? Should we keep posting in this thread, make a new one, switch to email, etc? I'd like to keep it open to as many people who are interested -- no "secret sauce" here :).
--
You received this message because you are subscribed to a topic in the Google Groups "golang-nuts" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/golang-nuts/s9SL2uG1HL4/unsubscribe.
To unsubscribe from this group and all its topics, send an email to golang-nuts...@googlegroups.com.
I would argue that if someone can't understand that a typed command can execute software should learn the basics before even starting to program.
Addendum: here's the raw link to the mockup for those of us using Chrome (which will block mixed content): http://f.cl.ly/items/0k1e3r3x3R462m3U3o11/lgthw-mockup-20140704.png
On Thu, Jul 3, 2014 at 9:21 PM, Matt Silverlock <elit...@gmail.com> wrote:Addendum: here's the raw link to the mockup for those of us using Chrome (which will block mixed content): http://f.cl.ly/items/0k1e3r3x3R462m3U3o11/lgthw-mockup-20140704.pngI'd add something about science. Obviously "science" is a giant field and most of us aren't physicists and chemists, but a very large number of people try to get into programming to write simple scripts to help them with their field. That way we can also provide different ways of thinking in Go. I'd expect different analogies to work on scientists than would work on some poor intern who wants to make a simple website for his company.
The site also looks a little biased towards people who know what they're doing in other languages. "User sessions" and "authentication" are pretty programmer-speaky. I don't think most people are really familiar with "OSS" either. I'm not saying don't mention it, but I'd really recommend more layman terms for the same things. "You want to write a website or web application; you need to connect to users, remember who they are, and let them submit what they've done" or something like that.
Ideally, I think we should have several intro tutorials that all ultimately feed into the same tutorials near the middle, basically just different starting points for programmers switching languages, programmers who know Go but not a specific facet of Go (i.e. someone who does computational geometry in Go may now want to write a website in it), and non-programmers starting programming. I don't think it would be much extra work.
On Thu, Jul 3, 2014 at 9:21 PM, Matt Silverlock <elit...@gmail.com> wrote:Addendum: here's the raw link to the mockup for those of us using Chrome (which will block mixed content): http://f.cl.ly/items/0k1e3r3x3R462m3U3o11/lgthw-mockup-20140704.pngI'd add something about science. Obviously "science" is a giant field and most of us aren't physicists and chemists, but a very large number of people try to get into programming to write simple scripts to help them with their field. That way we can also provide different ways of thinking in Go. I'd expect different analogies to work on scientists than would work on some poor intern who wants to make a simple website for his company.
Do you have a concrete example? Go is still fairly “young” on the scientific computing side (NumPy, SciPy and Julia are geared towards it) and the more “we” add to something like this up front, the more incomplete (as a whole) the project will be.
Best to start with what you know and open the doors for others to contribute.
How about a Gui application that helps set up the dev environment and it has a box where users can put in commands like "go get"? It would be a great way to help new people getting started with Go.In my experience, dealing with the environment variables when starting with Go is a big hassle for newcomers. 2 times 2 of my fiends who are quite experienced with the terminal and programming, they really struggled to get the environment working because of misunderstandings. And for me it's really a concern.
This is even worse on Windows where (as far as I know), you can't simply back up a file like .bashrc in case you foul up your entire computer when setting up your environment variables.
Hey all,I've been developing web applications for 5 years, and I found Go incredibly hard to get into. There is a lot of prerequisite knowledge required to do even a small bit of code in Go, and the Go community (in my experience!) has been unfriendly and sometimes even hostile toward my questions that I feel that I'm expected to know before I start Go development.
I have two questions:
1) Is there any community effort to bridge the gap between the systems-level knowledge required for effective Go development and the (excellently written) intro docs found on Golang.org? If so, how can I help out?
2) Is there a deliberate effort to keep "new" or "Rails"-style (hereafter "blurb") programmers out of the language until all of the kinks are worked out in the language, toolset, and best practices? Sorry if this sounds tinfoil-y, but it's the only explanation I can think of that would justify the general apathetic attitude toward articulating the software engineering principles behind why Go does the things it does?
I can provide some general examples if your response to this is confusion.
Thanks!
-Chris
The information on Go are not pedagogical in nature. In similar fashion, the Perl Doc on object oriented programming in Perl is also not pedagogical either.
The only way that learning to program in assembly on micros or mainframe would be easy is only if one had experience designing integrated circuits.
The key word I'm trying to add to this discussion is the word "experience" which in Go would mean that one gains expertise in Go by the same way I learned about Go "slices".
I understand your frustration with making use of Go for your Web Development. But I would like to use an analogy of using Asp.Net versus using "Front page". The first is a server based framework created by the evil Empire msft which locked you into their way of doing Web Development. The latter is a light weight tool with training wheels and people were very frustrated in trying to deploy their Web sites because it kept using the local C:\ directory when deployed on an Internet facing hosting site.
In short, Go is optimal for doing Web Development but it is not a vendor provided framework. Think of it as in the earlier days of server side Web Development using CGI Perl or C or C++. But Go is what was applied from all the lesson learned over the years and from Plan9 projects of building a resilient OS with a serious data and file management system.
And YES I would like to work with you to get the Go language easier to learn in a pedagogical manner.
Eg. Create what you had been asking for together. Contact me at luanvu...@outlook.com