17 ms·
Can you make a basic web app without Googling? I can’t
- hacktember 6y agoIf I really need that capability, I personally would download a LAMP/WAMP/MAMP setup with all the docs downloaded but needing to Google things isn't inherently bad.
- paxys 6y agoI used to program with 6 thick reference books around me. Has memorizing SDKs, APIs, libraries ever been a thing? Or is this just the daily "everything is bad nowadays" post?
- azhenley 6y agoEvery interview I’ve done required me to have everything memorized, so it seems this is very much a thing.
- tutfbhuf 6y agoBut then it's rather a problem with the interview itself.
- bennyp101 6y agoI had an online interview last year, and it was basically me coding up as they supplied the criteria (in PHP). For the life of me, I couldn't remember how to use array_column, but I knew that was what I needed to use. They basically said "errr, you could just look it up?" - like, it was obvious that the interview was more about what you knew, and how to do things, rather than can you remember every little thing from ever about your job that you don't use day in day out.
- jermaustin1 6y agoGetting a simple application up and running shouldn't be that difficult without scouring reference guides if it is a thing you do. The number of times I google how to do the thing I'm supposed to do is relatively low, but the number of times I have to google how to fix something that has come up AFTER I did the thing I was doing is probably 90+% of my googling.
- mywittyname 6y agoBack in the days of PHP, I could develop web apps without references for the most part, using a simple text editor. It's a pretty similar story with Python too, unless I'm using Pandas, I generally don't use reference material much. Today with node/angular, I'm generally leaning on Google (well DDG) pretty heavily throughout the day. Web platforms seem substantially more complicated today than they used to be. Then again, maybe the mid-aughts was the golden age of programming.
- rzzzt 6y agoI read Python and PHP's offline .CHM files, and was quite happy with the level of information contained there.
- paxys 6y agoPHP in fact had one of the first large online dev & documentation communities. A huge chunk of the web was built with multiple tabs of php.net open looking up which string length function to use.
- strictnein 6y agoYeah, I was just thinking of how every developers cube used to have stacks of books and binders of CDs from MSDN.
- kube-system 6y agoThink about the days before the internet. Was there any technical profession where you'd find offices without lots of books?
- t8e56vd4ih 6y agoyou name it ... looking something up in a book takes much more effort than just googling. that's why there was a stronger incentive to memorize.
- Too 6y agoBack in the days i would open an editor and start with <?php...?><html><head>, and it would immediately show at least something in the browser. The rest was open to creativity. Adding libraries was only needed when adding features. Today on day one i would go: wtf is this Babel thing and how do i configure it so that Angular work together with SASS and is npm compatible with this version of Typescript? Which reactor pattern is flavor of the month and what stupid parameter was needed to make the router work? I hardly even know which files are shipped to the browser anymore after all Webpack preprocessing. But once you actually have the setup in place, i have to admit the modern experience is a lot more productive and powerful. It's just that every time you have to start a new project or touch anything related to the build-process your soul dies inside. There are too much gunk just built on top and on top of each other, instead of replacing the whole stack, and thanks to leaky abstractions you have to understand at least something throughout every layer of the rotten cake. There are a lot of scaffolding-scripts available, like Vue-cli, helping you to do all of this but imo they just add even more to the problem, now you got yet another layer of crap to crawl through and it prevents you from actually learning the real layer underneath.
- HDMI_Cable 6y agoI'm guessing you could use a .pdf reference manual for a specific language instead of googling, but it does feel like frameworks and workflows have gotten more complex overtime.
- Nextgrid 6y agoSomething that has dramatically reduced my reliance on outside resources is an editor that can lookup symbol definitions. I’m using Django and I used to use Sublime Text without any plugins which meant (at the time) it couldn’t automatically show me the definition of a function or object from a library, forcing me to search around for its documentation. Switching to PyCharm/IntelliJ meant I could now just Command-Click (Ctrl-Click for Linux & Windows I believe) and see the actual definition and logic of the underlying function without having to rely on the online documentation. This of course works recursively, so I can repeat this process again and again up until I eventually reach the core standard library which is in C and isn’t introspective (at this point I can rely on my knowledge or some trial and error to figure out its behavior).
- devoutsalsa 6y agoI'd argue that's just having Google-lite built into your IDE. Personally I think that focusing on how you solve the problem loses sight of the fact that the only important thing is that you can accomplish the mission. If you can't build a basic web app on your own, but you can while salsa dancing w/ a mountain gorilla, I'll pay for your subscription to Spotify so you can stream Havana Kings while tearing up the dance floor w/ a Silverback (must provide own gorilla).
- DangitBobby 6y agoWell, it's not really like having "Google-lite" built in because all of that information is available on your filesystem. It's more like knowing exactly where your site-packages are and being very skilled with grep or some other search tool.
- core-questions 6y ago> To be fair, I'm not a web developer Kind of a non-article. Could I make an outdoor irrigation system, fix my head gasket, or anything else complicated without doing some research?
- azhenley 6y agoAuthor here. I'm a professor that teaches software engineering and occasionally web development, sooo I think your comparison is inapt...
- resonantjacket5 6y agoI am wondering are you using some external framework angular/react or just "only" js? "Or even deeper, does an over-reliance on documentation indicate a lack of critical expertise that will ultimately result in considerably lower job performance?" I don't think so, and I don't know why relying on documentation would be bad. In a more general sense even for making a todo list app I'd imagine the fundamentals aren't changed even across frameworks e.g. of when adding a todo it needs to be added to some sort of a list.
- core-questions 6y agoSo in my metaphor, that would be like perhaps a gardener assembling irrigation, or someone in a mechanical trade fixing the gasket. There's still a ton of specific knowledge to the job in question. Of course, it shouldn't be that Google specifically is necessary - just some literature or reference source (i.e. consulting with someone).
- auslegung 6y agoThe rest of the quote is quite relevant. > To be fair, I'm not a web developer so I'm not entirely shocked by this. I only have the itch (and time) to throw together a small web app about once every 6 months. A better rebuttal is, do you make a [small] outdoor irrigation system or fix a [simple] head gasket "once every 6 months"? I added the adjectives to better compare to his stated "small web app". I think it's reasonable to expect someone who "throw[s] together a small web app about once every 6 months" to be able to do it without googling, but it isn't how software development is taught. When studying something to master it you start with the basics and do them over and over until you understand them. We don't (tend to) do that in software development, I think for two primary reasons: 1) there's more "important, urgent" things to do and 2) things change so quickly that probably half of what you learn today will be unused in a year (of course if you learn the very basics those rarely change, but I'm talking about the things we all know change so frequently, but were good decisions at the time)
- sosodev 6y agoDoes it actually matter if I can? Is using reference material a bad thing? Edit: I know the article touches on that idea briefly but my argument would be "of course it doesn't matter". Sure, I could develop slightly faster with a more encyclopedic memory but I really doubt it would make an observable difference in the long-term. Most of my time isn't spent referencing libraries or syntax but instead I spend most of my time thinking out the logic and higher level relationships of my code. I suspect that is largely the case of any development even remotely non-trivial.
- phkahler 6y agoLet's say Elon starts that colony on Mars and you think "Ima move there and write code for a living." You might have the internet, but its 15 minutes each direction. Nothing interactive works, and while they brought copies of Wikipedia, stack overflow didnt package so easily. Or more simply, can you write a web app without internet access?
- tutfbhuf 6y ago> stack overflow didnt package so easily You just need some copy of something like: the way back machine, google cache or archive.is and then do asynchronous mirroring and you are not so far behind. Zoom meetings might be a problem though.
- lostlogin 6y ago> Zoom meetings might be a problem though. If it prompted the meeting organiser to put their one point into an email, thereby saving 6 people a 45 minute meeting, would it be a problem or a feature?
- tutfbhuf 6y agoWould be an interesting case study to find out if remote developers from Mars are actually more productive due to lack of synchronous communication.
- ALittleLight 6y agoI think I'd be able to do this, especially from my desktop where I have the code for many basic web apps to look at if I need to (which feels a bit like cheating). I am also not a professional web developer but I make random websites sometimes for fun.
- lbj 6y agoWhat an odd piece. Who would expect a non-web-dev to develop a webapp without using google? I do a lot of webdevelopment and have zero issues.
- cat199 6y ago$ ed ~/public_html/cgi-bin/basic-web-app.cgi #! /usr/bin/env perl ...
- dusted 6y agoI can, but it will be basic! I might have to use a JSON file for the backend because I probably can't remember any database libs well enough to use without documentation. However, lots of programming is much closer to plumming than to.. programming.. any time you're using a lib or api, you're just looking up what kind of fittings that comes with and what length of pipe to attach to it.. So don't worry about not being able to do anything really useful without looking in the docs :) Now, if you have to look up basic language syntax for the language you use every day, I'd say its bad and you probably need to practice a bit ^_^
- bch 6y ago> use without documentation Of course people’s projects can be unique, and my work may not be representative of the readers work, but I guess this raises the question: what does “using Google” mean? I frequently use “lots of things” on my computer: man pages, other installed documentation, will browse source code of libraries I’m using, or indeed my own previous work. I can do this if, say, I have no Internet connection, but that doesn’t mean I’ve got a fully-formed bug-free implementation of my goal floating around in my photographic memory.
- dusted 6y agoIt's a good point, I take it to mean search for how to use or do something, even as google is becoming worse at finding things, it's still often waaay better than the search functionality available on the websites of many libraries and utilities. So yeah, I guess I take it to also mean searching through local documentation, but I know that's maybe not what was meant.
- burlesona 6y agoYeah I would say this is exactly right. You should be able to learn at least one language deeply enough that, given sufficient time, you could do just about anything without libraries or external dependencies, and therefore without needing additional documentation. Aspiring to and eventually developing that level of language mastery is, IMO, one of the core signs of maturity for a Software Engineer. However, that would be wildly impractical in our day to day work, which is more about connecting pieces together in the right way, and hence is a lot about reading the manual for those pieces, understanding what it is they do and how they should be assembled together, and then actually assembling them together and testing that it all worked as expected. "Googling things" is an essential step in that process, but you could substitute Google for "read the manual" in an earlier era and it would be the same thing. Perhaps what is sad is how many things these days ship without good manuals, because Google makes it easy enough for people to stitch together scanty release notes, comments in the source code, blog posts, Stack Overflow questions, etc. that you can actually get away with not having a manual.
- nwsm 6y agoI’ve been developing web apps and related services professionally for 3 years and use google for work almost every day.
- noisem4ker 6y agoYes, I definitely could do it without Googling(TM). There's plenty of search engines and little need to advertise one in particular by coining a word just for it. Sorry about the snark and completely missing the point of the article.
- themodelplumber 6y agoYeah, the googling point is kind of strange in that way. My first thought was, OK I'd probably go back to some projects in my bookmarks db that seemed interesting last time I was looking into web apps. HTMX maybe. That project has some good examples in the docs. Googling can help in some ways, but it's also casting way too wide a net in others, especially if you keep repeating that step. It's like walking out into the street and shouting, "I WANT TO BUILD AN APP" infrequently, and then wondering why you keep doing this instead of building apps. Perhaps it would help the author to think more about creating their own process for selecting, refining, and testing methodologies first, then ramp up to building an app second.
- Animats 6y agoThere are books. But the O'Reilly guides aren't keeping up.[1] The market is dead. [1] https://www.goodreads.com/list/show/96192.O_Reilly_s_Pocket_Guides https://www.goodreads.com/list/show/96192.O_Reilly_s_Pocket_...
- ape4 6y agoThe web is recursive. You can only make the web without the web.
- lostgame 6y agoYes. I'm a mobile and web developer of 15+ years and I often will just hit File->New in Dreamweaver and proceed to create the JS, CSS, PHP; etc, on its own while prototyping quite often without the need to use anything but my own head. Granted, that knowledge came from, originally, reading a ton of books, which; as the Internet can be much, much more up-to-date with ever-changing APIs and technologies, I am happy to have as a replacement to heavy and quickly out-of-date books - and also came from 15 or so years of practice. YMMV.
- jcims 6y agoI think one of the questions beneath the question is how much would you be able to justify paying each month for a subscription-only Google? How about Internet access?
- FriedrichN 6y agoYes I can, but I won't. Because I'm not insane. I know for a lot of people coding is all about fun and lifestyle, but at some point it becomes a job and you just need to get shit done without being fancy, cool, hardcore, eXtreme, 1337, agile, lean, mean, whatever. Or maybe I'm just becoming grumpy and old.
- jmuguy 6y agoMost of my googling is just for API and SDK references. So, yes, with something like Dash or another offline reference.
- andersco 6y agoThe meaning of and technology needed to build a “basic web app” is in a continual state of evolution. Therefore, googling is not so much required due to a lack of knowledge but rather due to that this knowledge needs to be continually kept up to date.
- egfx 6y agoYes I can and I did after the enyojs framework went completely bye-bye and replaced with an entirely different framework called enact based not on enyo but on react! It reminded me of the time Qualcomm decided to one day purge all brew documents from their website. Google is fickle. The truth is in the source code of whatever you’re working with.
- matt7340 6y agoIt obviously doesn't matter that much if you can or can't. We all google all day long. But through my career at various times I've been able to say yes, usually after spending multiple years on a project and the platform/tech its built with. Speaks to the really enjoyable side effect of productivity and unencumbered expressiveness that comes with being immersed in a platform or technology for a longer period or time.
- ChrisMarshallNY 6y agoI love googling and stackoverflowing. I know a great deal, but I'm like Kelly Bundy; I can only hold so much in my pretty little head. I generally forget stuff a week after last using it, and am googling even the most basic things. In a few days, I'm gonna have to put my Swift code aside for a week or two, while I modify my backend (PHP). I guarantee that I'll be like duuu-uhhh for the first couple of days, with serious Google-Jistu katas. Then, the same thing will happen again, when I switch back to the Swift frontend. I tend to avoid using dependencies, so I write a lot of code.
- tomcooks 6y agoAs a sidenote on the availability of Google to look things up, how often do you find yourself stuck on a problem and locked into a result bubble where Google keeps on showing you the wrong results, usually spammy articles?
- ksec 6y agoI would not be surprised if even Professional Web Developers cant do it. Especially if you include deployment. This isn't the old days of FTP, Perl or PHP anymore. There are too much information I cant memorise every single bit of it. And I dont think you should either. Especially in the age of Google. My memory capacity has its limit, and there are things I just decide it is not important enough to memorise when I could easily search for it. ( Or if I am relying on Heroku ) I have long thought of Directing a video, where we have famous Developers, or developers from a pieces of software that normal people would have heard of, filming them doing work, looking up silly things in Google. Starring at the screen for hours and absolutely dont have a clue what the code is doing. Not typing any code for hours. Sort of like Reality TV shows for Programmers. Hollywood Movies and Anime has made the perception that proper Software programmers should be super fast touch typist and typing code with insane speed. It makes people uneasy when they learn programming. It turns out they have to constantly look up some manual, googling, copy and pasting and for most of the time not typing anything. They thought they are just not any good at it and many simply gave up. The reality is, hopefully the video would show, even top level programmers dont know everything. And it is perfectly normal to look things up.
- colecut 6y agoI remain living happily in the old days of PHP, somehow making functioning applications and being paid well. Life is easy and good.
- whimsicalism 6y agoDo you live in Europe?
- jellygraph 6y agoOr perhaps the Soviet Union.
- colecut 6y agoSan Diego, California
- offtop5 6y agoFlutter web + auto complete with VS code. Even then it feels like an exercise in futility
- icedchai 6y agoThere's so much involved, it's almost impossible to do many things from memory, especially across all different languages, frameworks, tools, platforms, etc. In the old days (for me, late 80's to early 90's, programming without the Internet), I remember having books next to the computer. Things were much simpler then.
- abeppu 6y agoThis specific case, and the norm of interviewing without access to references is not that interesting. But it is kinda like a specialized version of a fun party question, "With what you know now, if you were sent back in time, how far could you go and usefully employ your knowledge of the future?" (E.g. I know chemical fertilizer is a big deal, but I definitely do not know how to make it. I studied heat engines in a physics class, but could not spark the industrial revolution a century earlier.) Maybe the midway point between these is something like, "if you were sent back to an earlier era in computing, how far back could you go while usefully applying your current knowledge?" E.g. I work with the jvm constantly and I know that it was a big deal for a popular language to have an actually described memory model, but I couldn't build it myself in the 80s. Maybe I could build MapReduce or Spark in the 90s? It's _hard_ working without the informational resources you're used to, but there are so many more fun ways to explore that gradient than web apps.
- Olreich 6y agoThe going back in time question is actually really good. What are the fundamental concepts you need to kickstart stuff? Those fundamental insights are still going to be relevant today, which is why they sparked revolutions and major changes to the landscape.
- abeppu 6y agoA close parallel, which I refuse to play until the world becomes a less scary place is about rebuilding after an apocalypse. One "out" that can make the exercise more inclusive depending on the group is germ theory. Any modern person could save a bunch of lives in almost any period if they can convince people to wash their hands, boil suspect water, separate wells and sewage by a wide margin, etc. And yes, definitely still relevant today.
- toast0 6y ago> Any modern person could save a bunch of lives in almost any period if they can convince people to wash their hands, boil suspect water, separate wells and sewage by a wide margin, etc. And yes, definitely still relevant today. The hard part here is probably convincing people. Something to prepare for before you go back in time or post-apocolyptic.
- jeffreyrogers 6y agoI doubt most developers can do this. Especially if it involves all the configuration needed to deploy the site. I don't think they need to anyways. Most development involves a small amount of custom application logic and a large amount of hooking things together and manipulating data into the right format. Any programming of this sort requires lots of documentation checking to make sure everything is integrated properly.
- burlesona 6y agoYes. It’s not that hard, so long as your definition of “basic web app” is server rendered HTML and CSS. I could certainly do that from scratch in Ruby without Google. If I didn’t have Google I wouldn’t want to use Rails - even though I know the framework well, there’s a lot there to remember. But I would expect anyone who is (a) proficient with a high level programming language and (b) has ever built a web app from scratch would be able to say yes to this as well, so long as they get to work in the language they know well. The author of this post specifically does not fit this criteria: > To be fair, I'm not a web developer so I'm not entirely shocked by this. I only have the itch (and time) to throw together a small web app about once every 6 months. Also, JS is part of the problem. Even avoiding the chaotic world of front-end by assuming strict SSR using something like Express, Node would be one of the more difficult ecosystems build in from memory, because JS doesn’t have the level of standard library that most languages do, because it changes so fast, and because it’s drunk the micro package kool-aid so hard (aka left_pad). But for developers fluent in Ruby, Python, Go, Java, PHP, and probably several others, I would think this is a very realistic ask.
- trey-jones 6y agoWell there is this quote, often attributed to Einstein himself: “Never memorize something that you can look up.” I don't know whether he really said or thought anything like that, and I also don't actually agree with the literal meaning. There are some things that it pays to memorize, in my opinion. As I keep reminding my daughters: times tables (or math facts as they seem to be known nowadays) are important forever. The principal behind the quote, however, I'm fully behind. I live in the docs. Even if it's something that I know pretty well, I often like to check to make sure I understand exactly what's going down. There are too many little details that are easy to forget. If it's important and you aren't sure, look it up! Finally, I could probably claim to be able to write build a simple web app without using google, but I'm sure I would lean heavily on my editor to remind me of argument order, syntax, etc. Maybe there is a little bit of difference there: if my editor/IDE can tell me what I need to know, it's probably just that bit faster than searching for it in a browser. Shoutout to lsp-mode.
- burlesona 6y agoThere is some truth to that quote, namely that becoming effective at looking things up is a big productivity booster. But there is no productivity booster as large as knowing exactly how to do something without needing to look it up. This is almost by definition the level of mastery that comes from significant practice / experience. I've noticed that some of the very smart people I've worked with for years did not ever really achieve mastery of their language or tools, and I think that's at least partially because they didn't care to take the time to try and figure things out without looking them up, and thus the inner workings of things remained inscrutable to them.
- hackernews 6y agoOne of my fondest memories programming was on a sailboat crossing the ocean. When ever I hit doldrums, I'd pull out the laptop and work on the app to pass time. Luckily I had a good collection of gems locally that I used for reference. Wasn't a web app, but I'm quite proud of it.
- f430 6y agoOf course not because any written software is the result of learning and we simply cannot learn every permutations that can be called a "web app". If we are talking about deploying something using framework which automatically generates CRUD boilerplate then perhaps yes.
- csharpminor 6y agoI definitely cannot do this, but the tool that gets me close is using backsearch to find old terminal commands. This might sound really basic, but I have worked with surprisingly tenured devs who jaw drop when I show them backsearch (yes, really). I'm personally a fan of fzf. ctrl-r has saved me many google searches. If you're just getting into software development it's a lifesaver.
- mattlondon 6y agoThere is a difference between "how do I do this?" And "how do I do this?" I know without even thinking precisely how I would assemble a simple web app - I do not need help to understand what needs to be done in turns of building blocks. I.e. architecture, how it all hangs together, how data is stored and transmitted etc. But do I need to search specific arguments for a library function call, some DSL syntax, or other reference material? You bet I do - time is too short to memorise that sort of thing, and totally not worth it IMO (especially since tech moves fast - what is relevant today, is obsolete and dead next year)
- bennyp101 6y agoI guess that depends on what an 'app' is. Can I knock up a site with some PHP/HTML/CSS without references - sure. Can I knock up a standard server side app - sure, but I'm gonna want to look up certain functions and what arguments they take. Can I put together an SPA without? Probably not. I know what I need to do, but I'm not going to remember which packages I need to install, or how they are configured, or if package x works with webpack4 or if I have to have Vue2 because a certain thing I want to use doesn't support 3 yet etc. There are so many moving parts now for an 'app' that it is not feasible to keep it all in your head. Thats why there are so many starter-packages for things, because people forget what they did the first time around, so just create a new git repo with the skeleton to get going again ... only to be replaced in 6 months. It was perl and flat file site counters when I started, and now I have to google how to make webpack work nicely :D
- number6 6y agoYeah I guess I can crank out a basic CRUD-App without looking up anything. All depending on what app means. If I have to work with new technologies I clearly look up the best practices and different solutions to common problems but on my hometurf? I look into the source code to know my way around. It's quicker most of the time. Or I ask in the forums - is this allowed?
- csours 6y agoI tried to make a one file java console app the other day. I know I did this in college. I gave up and just did the task in a python notebook.
- stakkur 6y ago'Before Google', it seemed to go something like this: * Ask coworkers * Look at documentation * Try things out Things don't seem way different today; we've just replaced the first two items with a search engine. There is one difference I've noticed, though: an instant-access search engine makes it easier to 'fake' your way through something with less skill and knowledge. In the long run, this seems detrimental to professional growth and development.
- gabereiser 6y agoBefore google it was exactly like that. When I was younger and junior and eager to build whatever my boss wanted, coworkers would rely on each other for figuring things out. No fear of being labeled “incompetent”, “unskilled”, or “underperforming”. It was more team oriented. Trying to reverse-engineer some crazy DHTML javascript algorithm used by one site so we can reproduce it in ours (for their members portal). Coworker came to me asking if I could help her deconstruct the hair ball javascript code into something meaningful. It used variable names like “a, z, t1” etc. While you can quickly google something and get back a barrage of answers, usually on the same solution, this is software we are talking about - there isn’t a One True Way and there never will be. The more we try to make a “right way to do things” we invent a new way. Do I google when coding, sometimes. Do I need to? No. Does it make me faster to put my thinking cap on the wall and just go with #1 SO answer? Unfortunately yes.
- megous 6y agoI used to take work with me to places without the internet. You just need some local reference docs and a few years of experience.
- deleted 6y ago[deleted]
- ceedan 6y agoOnly if you let me use another search engine ;)
- plesiv 6y agoEasy... mkdir example-1 cd example-1 yarn init -y yarn add next react react-dom mkdir pages cat <<EOF > pages/index.js const Page = () => "Hello world!"; export default Page; EOF yarn dev Didn't test. There could be typos and you need to care about the indentation of the HEREDOC. I can't do it with an arbitrary set of tools either, but that's why good tools matter and that's why you should use Next.js.
- omarhaneef 6y agoI remember one of my physics teachers told me that what it used to mean to be a good mathematician was you could do mathematics quickly in your head. But then cheap and ubiquitous calculators changed all that, and what it meant to be a good mathematician was solving complex chains of problems. But then cheap computers changed that, and what it means to be a good mathematician now was just setting up the right equation.
- acwan93 6y agoIt’s like how people equate rattling of facts as being smart. When you’re effectively carrying the equivalent of all human knowledge with you at all times, memorizing facts and historical dates seems obsolete. Now it’s about filtering out the “noise” facts and figuring out which facts or dates are relevant.
- jjk166 6y agoCan you build a house with one arm tied behind your back? I'm sure someone theoretically could, but not why anyone would. Is relying on having two hands a detriment to being a handyman? Does such a person lack critical expertise? Professionals use the tools at their disposal. Instant access to the sum of all human knowledge is an incredibly powerful tool, and you don't get any bonus points for leaving it in your toolbox.
- sixdimensional 6y agoThis is slightly perplexing. I love the intention of this post. Some thoughts.. I feel one could argue that there is a chicken-and-egg problem here. Nobody could code anything without a reference to start from. But, then, who developed the first language without a reference? Ah, there - the start of something - those who invented the first programming languages - the very concept of "stored programs" as punches on a card, for example - assembly language, etc. - they did not have a reference. They invented the reference. But, it was also, by today's standards - much "simpler" and a much "smaller surface area" - while probably quite technologically complex and difficult for those at the time. But after that, everyone else, who didn't invent the technology, but was rather using it.. was therefore - by definition - using a reference. Standing on the shoulders of giants... how else to learn? For instance, I learned BASIC coding first by studying other people's examples - in magazines, by looking at code that came with my first compiler as samples, reading books. Same way I learned Pascal and C++ - the tooling/IDEs back then couldn't "help you learn" with autocomplete.. you learned when you wrote something, and it either compiled or it didn't. You learned by using "help" or books or talking to people or looking at examples. I'd argue that even those who invent most things today are inventing it at a higher level of abstraction, and therefore still looking at references for levels below the level of abstraction they work at. So.. "can you make a basic web app without googling"? Well, actually, yes, sure I can. But that is because I learned HTML, CSS, JS (and supporting languages like Perl, PHP, etc.) when the surface area was still small - from the Internet itself, by looking at examples and reading things like the entire HTML specification when it was smaller. Then I memorized it by doing it.. a lot. Then things changed, but a lot of the basics are still possible to do today and still work. That said - "will that basic web app work in every browser platform or any every server/OS platform that exists"? Well, if you stick to the true basics, possibly yes - but, this raises the question of technology and implementation variability and complexity. I think the bigger question being posed here, isn't the headline... it would be better to ask, "does it matter if you can't make a basic web app without Googling"? There, I think, is the point of the post - and - yes, it matters in a lot of ways. But if you are coding for the web - presumably you are already using the web.. so.. perhaps that specifically is not as important as the next bigger question... "Has writing code for modern systems become so diverse and complex, and the surface area so large, that it is difficult to build systems? Has the variability and diversity of our platforms become so large that it is difficult to build once/deploy many with certainty?". There again, I feel, is a much deeper and more interesting question. This too can be answered simply - avoid complexity and choose simpler languages/platforms that accomplish your goals, learn their surface area, and do your work. But, this might be more difficult/non-obvious to those just getting started - and there some good work could be done to make it more accessible. And here we look to things, for example, like WASM - trying to build simple primitives that can work on nearly any platform, upon which many complex languages can live - engineering solutions to attempt at reducing complexity based on variability and diversity of platforms and implementations. This question... surely relevant during this time of resurgence of "low/no-code" platforms and in relation to what we might have once thought of as "4GL" (or beyond) programming languages and related implementations/platforms.
- jascii 6y agoYes I can. I regularly disconnect for a hacking session, reduces distractions and I find it often helps me come up with simpler solutions then building something up out of what's already there. Its also nice to spend some time on my boat and still get some work done :)
- gabereiser 6y agoI was going to post something along the same lines. I know my framework, I know my code, and I absolutely can create a web app offline without using google. I also enjoy boats and working from them from time to time. A lot of people missed the fact that good intellisense style code completion, local docs (rdoc, what have you) are still viable. Also having some PDF’s on your machine of programming books helps you not google for solutions.
- henning 6y agoIt matters if you're applying for a job and the people interviewing or the hiring manager think you should. People like Mike Acton and Jonathan Blow give incredibly condescending speeches about "practice" like you should be able to just make a Win32 API app that calls DirectX (or some other comically absurdly bad API) from memory. Blow in particular loves harping on this and loves saying that web developers are incompetent and wasting their time creating awful products. How much time do you spend making new apps on long-lived projects? At many companies, the answer is zero. These same companies may think you suck shit at programming if you can't remember command line options you never have to use in day-to-day work.
- TrianguloY 6y agoFor me, and I think the majority, memory is where you keep what your brain thinks that it will use again. If your job is to make and fix/tweak the style of a web page, and you do it practically everyday, you probably can make a pretty decent css file without even looking away from the editor. But if you then need to make a basic html page, you will probably search. If you use an ide with autocompletion, you probably won't remember the correct camelCase of even common functions (is it instaceof or instaceOf?) but if you work on an embedded system with a plain console editor you probably remember them all (or at least the most used ones). I remember when I was actively using Lightning Launcher (an android launcher with JavaScript capabilities) that I could make full scripts almost without pressing delete, when its editor was simply a big textarea (no autocompletion, no colors, not even automatic indentation). I did need to check the docs from time to time, but their limited (and logical) set of basic functions made it easy for me to remember. Nowadays I need to check everything again, because I simply forgot due to not using it much. Answering the question: yes, yes I can, a very basic but working one, simply because I like making small tool pages for myself, coding directly from my phone (in a basic text editor). But when I need to do something not so basic, like checking if the user has scrolled to the bottom of the page, I search it.
- danaliv 6y ago> For me, and I think the majority, memory is where you keep what your brain thinks that it will use again. There's some pedagogical theory around this. (I learned this through the FAA's instructor training.) Sort of common sense stuff, but it's helpful for structuring learning. Basically you'll remember things that you use a lot, have used recently, experienced intensely (e.g. actually used rather than just read about), and had fun learning. In addition, the first way you learn to do something tends to stick. Cite: https://en.wikipedia.org/wiki/Principles_of_learning https://en.wikipedia.org/wiki/Principles_of_learning
- swiley 6y agoDoes looking at old code I've written and have locally count? What about offline documentation like help() in python? Without either of those it would be iffy. I could probably do something that updates data consistantly but using a serious database or doing authentication correctly might be a stretch.
- whoisjuan 6y agoI can't and I don't care. I consider my programming skills to be 100% based on my ability to know what to search for and not necessarily on my ability to remember trivial things like the exact sequence of things needed to initialize a framework or whatever. What I care about is having good foundations that help me to undestand what exactly I need to look for and that's by itself and invaluable skill.
- jkingsbery 6y agoI probably could at some point. It's pretty easy: you do the right commands to generate a Java project from a maven archetype or to start a Rails project, you hook up your git repo to Heroku, tweak some HTML. Today if I wanted to, I could memorize the sequences to stick some node.js inside of an AWS Lambda. There are at least a few problems with this: 1. I don't have to create a basic web app frequently, so I've forgotten the commands. They're easy to find with googling. It's not worth my time to memorize them. (When I was learning to program in the 90's my family didn't have Internet access yet, but if you replace "google" with "looking through helpfiles or programming books," you get the same effect.) 2. The kinds of webapps professional software engineers build generally aren't "basic." Webapps at the professional level are complicated. Rather than "an over-reliance on documentation indicate a lack of critical expertise that will ultimately result in considerably lower job performance," reliance on documentation seems to be more about having more tools at our hands to build software that's more maintainable in the long run. We have frameworks/services that handle payments, security, storing data, and so on for us. The trade-off for delegating to others solving ancillary problems for you is that you have to read their documentation. 3. More and more in my career, I find myself not just googling technology but to try to understand business domains. Our job isn't to tell our boss "Here's a webapp!" Our job is to solve a customer need, and that involves understanding who the customer is. Could I shovel some code out the door without googling around for something? Maybe, but it probably wouldn't be very good. 4. All else being equal, I'd rather work with an engineer who is good at finding information quickly rather than someone who insists on figuring it out. Google is not some magic mind reader - you have to know the names of some of the things your trying to do, you have to assess the likelihood of an approach is worth trying, and even if you do get an answer from Google, you'll inevitably need to adapt it in some way to meet your need. Sometimes, it's not enough to look it up in Google, you have to reach out to other people, and you need to know how to formulate your question to help others help you. There is skill involved in finding information. 5. I look up things that I already know all the time. Just because you know something, that doesn't mean you shouldn't double check that you know it as well as you think, or that there isn't some better answer or solution. For one example within programming, I'll look up articles I read 6 years ago that do a good job of explaining an idea to someone before I give feedback on a code review and I have to explain a similar idea. So, engineers don't just memorize stuff for the sake of it. Anyone reading this article shouldn't feel like they're not a real engineer because they can't do what the author suggested.
- jwlake 6y agoThe corollary to this is can you write a simple c program without a compiler and have it do the right thing and compile without syntax errors the first time.
- refactor_master 6y agoAnd even if you could, you’re probably using a framework that does too much, and that’s cheating. Or was this a criticism about Google and the internet all along? Wait, what was the point again?
- indymike 6y agoMost of the time, we're not starting a project, so making a basic web app isn't something most of us do often. That said, there's still an over-reliance on google and the web. A better test would be: can you close tickets in your current project without googling?
- rsync 6y agoYes, I can and I have done it before, under time pressure. I was one of the original employees of k12.com, working as a Sun/Solaris sysadmin and late one night the "web team" had a next-day deadline to make a registration system work. There were press releases and print materials being released the next morning with addresses and registration forms that needed to work and their big bloated "stack" was not producing anything workable for any of them. I ftp'd over an old, personal copy of cgi-lib.pl and hacked up a little web page that dumped to a flat file and cc'd an email address with every registration. It took about 45 minutes and they used it for a year.
- Arainach 6y agoIn my opinion, there's a difference between having to go to the docs once and having to go to the docs (or example code) every time. I am not a (frontend) web developer by career. I did LAMP webdev work as a college job 12+ years ago and, like the author of this article, do small personal web projects perhaps once or twice a year. I did one of them earlier this week. Yes, I went to Google for basic things like "Javascript map lambda" or even "Javascript foreach syntax", but I refreshed myself on those exactly once and was then able to keep it in my short term memory through the completion of the project a few days later. I switch around so many similar-but-not-identical languages (Java, Go, Python, C++, etc.) in a year that it's often not worth it for me to memorize the minutae of each one. I know how to conceptually do something in whatever language, and use search engines and stack overflow to remind myself where to put the semicolons and the brackets.
- eikenberry 6y agoTitle is misleading as they wanted to do it without any online resources, including online documentation. Using docs is a lot different from googling. I'm not surprised at all that they couldn't do it without documentation. I would have been a bit surprised if they couldn't do it just without google/SO, though I would have blamed that more on poor documentation.
- djhaskin987 6y agoPeople used to buy big books and stick to languages with more batteries included. I still remember the big huge fat Java book I bought when I was in high school.
- makach 6y agoDon't worry about it. Googling has come to stay. There is a lot of skills related to identifying what piece of code is relevant for your purpose. No skills are basically required. No one is expected to do a basic web app from scratch - heck - most IDEs has boilerplate for creating a web app.
- danaliv 6y agoI don't think I've ever been able to write software without an API reference, and I've been at it since the (late) 1980s. I guess it depends on what you're Googling. Sometimes I can work out a way to do something, but what I really want is the idiomatic way to do it. No way to get there but to look it up. Or I need to know some specific fiddly bit about how a function behaves. That's a reference lookup. If I'm Googling "how to reverse a linked list" ;-(, well, that's maybe not so great.
- stereolambda 6y agoIt's something that I'm mildly interested in because 1) finding the same thing on the Internet again is not always easy (the answer can be buried somewhere in the search results, the site rankings change)[1], 2) going to the web browser can be distracting, 3) there are the odd situations when you don't have Internet connection. So here's my attempts. I store some annotated snippets in Joplin (could probably use org-mode or similar). I also collect programming ebooks and PDF'ed docs: sometimes you can still find them, sometimes you can 'print to PDF'. No idea how one would do it with javadoc for example. The problem is interface for searching this stuff locally and reading. I use recoll for full text search and qpdfview for PDF viewing (the main reason is that it has tabs). Admittedly, this is not completely satisfying. Simple text search doesn't have the sophistication, PDF's feel less pleasant than web pages. Maybe something I could get used to if I went fully that route, but for now I don't feel compelled to do that (besides some experimentation). My guess is that if you use a small language/libraries, or have a self-contained codebase, or do fairly rote things, it's possible to go without searching documentation. Otherwise... no? [1] Or you could use bookmarks, but then, why not archive.
- johnsonjo 6y agoI could do it, but I would likely have to have access to Dash [1] which is actually quite useful when you're on the go. I am a proud purchaser of Dash (though not at all affiliated with them), because it comes in handy when I'm somewhere with little to no internet. [1]: https://kapeli.com/dash https://kapeli.com/dash
- INTPenis 6y agoI could if I had the framework docs. I have also made a few boilerplate projects to make it easier and faster to get started with simple stuff like Flask modular app and tornado consumer daemon. If I had a book on each framework I use with their docs reference material I could do without Google. It's a fun question but can it really happen realistically? I mean if there is still a demand for web apps then there is most likely some sort of way to index the existing web and search it. Even if that isn't google anymore.
- ganafagol 6y agoI never thought that there is a benefit to working at a shop that is using an obscure, poorly documenyed in-house language. Since most of it is in conventions and institutionalized knowledge, the "core" of it that we actually use/type on a day-to-day basis is so small that it fits into everybody's mind, and it's getting constantly refreshed as well. No temptation to google anything, there wouldn't be answers anyway. And our in-house stackoverflow clone died from not being used years ago. Wow this sounds terrible. But it's actually an awesome place to work at!
- racl101 6y agoDepends. Are you asking if I can make a web app from memory? Probably not. I have ebooks, I have my Dash app which downloads documentation. So while, I could technically do it without Googling, I can't do it without documentation. If I can't Google then I'd have to look at documentation and my ebooks. Why? Well, I work with a lot of languages and frameworks. I can't commit all these technologies to memory. Few could.
- madhadron 6y agoSo the crucial thing for me would be: are the reference docs for may language/library/OS considered external resources? Can I type man in a terminal? Can I use a Python repl to explore the data structures? If so, then, yes, I can. But I had to go double tab on http.server to remember what was in there. I used to commute on a ferry, and was offline for that commute. Often I would do some coding (more often I was writing), and a tool like Dash that put reference docs offline was essential.
- olenin 6y agoI couldn't, some undoubtedly could, but that's not the point. What a wonderfully posed question with much broader implications, especially relevant to Australians ATM vis a vis the government's attempted tussle with the big people. I hope this discussion spreads. This is a thank you message. Cheers.
- olenin 6y agoI couldn't either. No doubt many could. But that's not the point. What a wonderfully posed question with such broad relevance, especially for Australians ATM vis a vis the government's current attempted tussle with the omniscient platform. Please let this discussion grow. This is just a thank you message. Cheers!
- olenin 6y agoP.S. as evidence of my incompetence I couldn't even operate the comments function correctly and posted twice ;)
- exabrial 6y agoI mean, using a maven archetype, I sure can get a Hello, World going in about 30s.
- lostmsu 6y agoTotally not a problem in the world of .NET + Visual Studio. Create new project -> web site -> you get a template filled in with auth and minimal database. No need to google function arguments, because in statically typed language autocomplete provides nearly 100% discovery. CI style deployment would be a problem, but manually you can deploy from the project menu.
- jeremycarter 6y ago.NET is the kind of stack I can come back to after years of not using it and fit right back in without googling. Even a 10 year old book would still be mostly relevant.
- vallas 6y agoWhat can you do without Googling these days?
- kcartlidge 6y agoIf by basic web app you mean something like a personal site then yes for C# (.net core), Go, and Node. The searchy bit usually starts when I hit the need for user accounts, data layers, and OWASP.
- brundolf 6y agoI think I could do it if the front-end is all custom HTML/JS/CSS and the back-end is just Express. Might have to cheat and use a local file instead of a database. Could be an interesting exercise. Of course deployment will have to just be: git pull origin master npm start
- __henil 6y agoMaybe I can with _duckduckgoing_ /s
- midrus 6y agoYes, I can. $ rails new myapp Or the days I'm not such a rebel: $ django-admin startproject myapp
- tlarkworthy 6y agoI worked in field robotics and sometimes you would find yourself in a boat without internet fixing robotic software problems at sea. I took 50GB of wiki resources mirrored in my pocket.
- MattGaiser 6y agoWhat did you include?
- tlarkworthy 6y agoThe Robot operating system wiki mirror[1] + python resources [2] [1] http://wiki.ros.org/Mirrors http://wiki.ros.org/Mirrors [2] https://docs.python.org/3/download.html https://docs.python.org/3/download.html
- antpls 6y agoWhat software did you use to browse/search in it?
- tlarkworthy 6y agoGrep
- dvdbloc 6y agoSounds like a future Starlink customer
- baxtr 6y agoI was thinking about a situation similar to that in web development. But if there’s no internet, a web application doesn’t make that much sense does it...
- sdenton4 6y agoI'm thinking back to a real dumb django 'web' frontend I built for a raspberry pi camera project once... The whole idea was to have a page I could load from a laptop attached to the pi via a ethernet cable for quick debugging and interaction. No external internet needed, and did the job decently.
- MattGaiser 6y agoThere are just so many things you rarely do and do only at the start of a project. I have done most of my development with Django on the backend. I start a project once every few months at most. There is plenty of config that I am copy and pasting from the internet. There are lots of little quirks like CORS that are handled once and never touched again. So yeah, I might be able to get a basic page going, but I am sure I would need it for the postgres integration. Only with Pycharm, so I can scroll through and search code easily as an alternative to Google.
- jrickert 6y agoWhen I run a technical interview for a dev role, I make a point to ask the candidate to Google their way to a solution since I figure that's probably one of the top skills they'll need on the job.
- alkonaut 6y agoSo much this. Knowing how to refine a search and how to guess phrases that will occur in the correct page (which sequence of words to quote and which not to quote) is at least as important as anything else like data structures. I’d much rather have someone find the best page showing a specific tree algorithm, than describing it on a white board. Bonus points if the searching test requires knowing the termninology. Having a broad-but-shallow set of knowledge is a key skill for developers in general, for this reason (information finding). E.g knowing that a bounded cache can be a “LRU cache” will help you find information or implementations.
- dfee 6y agoAll you really need to know is `python -m http.server` The definition of what constitutes a web app isn’t clear but if it’s JS, `npx create-react-app` and `npm start` should be enough. [edit] Whoever downvoted me, check my GitHub. @dfee. Also, I’ve literally written web services or apps in 5 languages in the last 12 months.
- olliej 6y agoI couldn't and I worked on a JS engine for most of a decade. Hell I "designed" one of the modern features in the spec. Write a web app? noooooope Write JS the appends to innerText or writes to a canvas? sure.
- 29athrowaway 6y agoAn alternative: Install Dash or Zeal, download docsets for your language and libraries, and use a keystroke to pull up documentation under the cursor.
- sli 6y agoPersonally, I can get a SPA running in Elm without using Google. I have to Google react-router if I use React instead. But that isn't the value I'm getting from this thread. This post, along with the talk of interviewing and webapp development in this thread, is giving so much anxiety that it's really galvanizing my desire to leave this industry and never look back.
- yclurker 6y agoWhen underlying things change rapidly, what to search becomes memory.
- pmontra 6y agoCould we write software without using one or two reference manuals back in the 80s? I couldn't. I remember I used the X11 manuals, an encyclopedia sized serie. Plus the manual of every language I used. Plus the Unix man pages, especially section 2 for system calls. Plus books about basic algorithms. All those resources moved online and we use far more libraries now. I don't expect to be able to do anything without an internet connection.
- newusertoday 6y agoTechnically i can but that is because i have installed "zeal" and "devdocs". I still need to google/stackoverflow but it is infrequent.
- stanislavb 6y agoTo some extent - yes. I’m pretty comfortable with Rails and use Dash for docs.
- rlt 6y agoSure, depending on your definition of “basic”: npm i express node -e ‘require(“express”)().get(“/“, (req, res) => res.end(“hello world!”)).listen(3000)’
- Hydraulix989 6y agoIf you define web app as an HTTP socket server in C, yes.
- franklampard 6y agoI can’t make any basic apps without googling :/
- rwoerz 6y agoLevel 2: Can you do it without building / testing every now and then? Level 3: Can you do it without syntax checking, IntelliSense, etc.? Level 4: What about removing DEL and BACKSPACE?
- viseztrance 6y agoA basic app? I've been doing this for years and of course I can. For the things I've mastered I hardly use google anymore, and even that is mostly to check if things have changed since the last time I used them and if there's a new way I didn't know about.
- radium3d 6y agoYeah this is how it is for me as well. I like to see if someone has come up with a more concise method here and there.
- mike_d 6y agoUsing notepad or your systems equivalent? I notice a lot of developers rely heavily on autocompleters and syntax hints in the editor, but deny that they need "documentation."
- viseztrance 6y agoI get where you're going with this, and I agree with the general point. But my emacs with ctags only does local method lookups, so that's not really my case.
- stagas 6y agoI don't know how many people are aware but https://devdocs.io/ https://devdocs.io/ has been a life-changer, runs locally as PWA and caches all the docs you need to use, instant search across all interfaces - so yes you can write even a complex web app without googling at all.
- rock_artist 6y agoI think the web searching has 3 use cases: - snippets/usage: This was done in the past by books. But those days when I’m writing and many languages where some of them aren’t my dailies. This can save me a lot of time. - cleaner/modernize: This is equivalent to asking a colleague that’s more seasoned. At least with C++ you discover there’s a brand new std that does that cleaner. - issues: We live in a package / deps manager days. Sometimes tiny change breaks your tools. Many times the web searching could save you day(s) of hunting issues that broke due to some dependency or package update. While the same was also in the old days. You’d naturally had less web deps and less frequent updates.
- calt 6y ago- official docs: Embarrassingly I often neglect to even learn doc tools available to me offline and instead rely on google for even the most basic stdlib documentation.
- xurukefi 6y agoI don't think this is a bad thing. Google, StackOverflow et al. are basically just extended documentation. What's bad about using docs?
- Thorentis 6y agoWe as developers should be fighting back against this - not by memorizing everything (that would be impossible with the number of frameworks, tools, and languages that exist), but by relying more heavily on good documention, bookmarking that documentation, and finding answers ourselves rather than relying on Google. This means we will have greater expectations of projects to deliver good documentation, and empower ourselves to be less reliant on a global tech giant just to write software.
- zachrip 6y agoWhen I was in high school my family was poor and we frequently didn't have internet. I relied a ton on the version of mdn I downloaded at school and wrote questions down for things I needed answers for the next day as well as things I might need answers for over the weekend. It made me work on things in a very different way than today but it's one of those "I went through it and it was formative but I don't think it's necessary for everyone to do so" type things.
- gebt 6y agoThis ability would be a big time saver during development. I enjoy to develop without Googling; really enjoy! I tried some other amazing things: - developing without using touchpad or mouse. - debugging without running code until the end. - developing with turn offed WiFi. In general, I'm always trying to reduce my needs. I think this practices would help me to be more accurate, more independent, and become able to live in a post-apocalypse situation as a geek. I said post-apocalypse, I remembered lcamtuf article "Disaster planning for less crazy folk": https://lcamtuf.coredump.cx/prep/ https://lcamtuf.coredump.cx/prep/
- karlicoss 6y agoTotally agree. It's a practice of resilience, even if you don't do it most of the time (because googling is indeed usually a massive time saver).
- aerovistae 6y agoI thought this was a joke until I realized you were serious; I was expecting that as I read further into the list it would get to "-develop without using my hands" and "-develop with my eyes closed" (which are legitimate situations for disabled developers, btw) but which would be absurd for anyone to practice under conventional conditions.
- gebt 6y agoIt's not absurd. At least it improves you mental abilities; as when you try to write using your other hand. p.s. Even occasionally I'm walking closed eyes.
- rajarsheem 6y agoEven if I could, I would not call that an achievement. In programming, we are expected to understand concepts, not memorize documentation of a library. Of course, if you are too specialized working with few libraries/frameworks, you will naturally end up knowing its methods by heart. But that doesn't mean searching things up online is a bad practice. In fact, I believe it is more useful to keep updating yourself from the web on better ways to write some piece of code than what you have memorized from a year back old doc. Also, eventually, what matters is how you connect the bits and pieces you take from online and integrate them into your software. How you design and shape your software so that's its scalable, optimized and reliable is in your hand and that's what matters the most!
- lysium 6y agoWhile true, it would be reasonable to expect to have one single documentation that is sufficient, and not to have to resort to searching aka googling.
- a_lieb 6y agoFor me it's simply a matter of convenience of searching; even pages with great and comprehensive docs can be hard to search. And the average is so poor that I often don't even bother to check if a particular project actually has a good search feature. If my search takes me to the actual doc page, (and it's good) then all the better!
- niklasd 6y agoFor me it is often a question of what I am looking for. If I quickly need to know how to get the last item of a list in yet-another-language, Stack Overflow will provide me an answer in about 2 seconds. The documentation will certainly provide the answer too, but I'll need to look at several places etc., since the format is just not optimized to answer exactly this question fast.
- Pampleti 6y agoWarning: weird analogy is coming up. I learned to write java code (structure, basic io (terminal, file, datastructures) blind like in word or notepad and it would run without errors for a google interview; It is not that much you need to know actually but when you learn it once, it lingers around for quite a long time and it gives you a different feeling of confidence that you actually know java (i was writing java code for 6? years before that already so i do know java). Its very similiar to my personal experience with doing push ups: If you never have done them you don't have any muscles at certain areas; Now after going from 0 to 15 push ups over a few month, i gained a general better physiology on upper body strenge and it still lingers around. Non of both are critical in a day to day scenario but both experiences were fun/interesting and this base is now here where it was not before. It brings me, mentally speaking, closer to really get something like java.
- BiteCode_dev 6y agoIf it's just a crud app and not, a spa, even with a bit of ajax, sure I can, and so most devs I know. Bu5 we are professionals, using frameworks. That changes things.
- bryanrasmussen 6y agoI think one question is how much would doing it with this arbitrary restriction improve the experience for users of the site - for example I wouldn't be able to add tracking of any sort, or any social media icons to like and share content because I wouldn't be able to find how to add them without searching.
- kumarvvr 6y agoI use Bing and DDG. Works well, no complaints.
- kkoncevicius 6y agoThis short video [1] has few arguments in favour of being able to do it. [1]: https://www.youtube.com/watch?v=Q3XuFr7rw84 https://www.youtube.com/watch?v=Q3XuFr7rw84
- renewiltord 6y agoHaha, no. The way I see it, I can't remember everything so for most things I bias towards remembering the index and for some things I bias towards remembering the content. In practice, whether I like it or not, the content for frequently performed tasks gets memorized. So I just need to keep the index well tended.
- canofbars 6y agoI usually only remember there is a thing that does what I want but not its name or exact usage.
- nsonha 6y agomaybe the browser devtools should be shipped with typescript definitions and mdn docs. If you think they are bloats then another thing to look into would be decoupling the devtools from the browser
- Ciantic 6y agoI agree, unfortunately MDN has it's own type definition format "Web IDL". This means community must write the type definitions twice, once for specification in Web IDL and second time in TypeScript to get proper IDE support. (There is a converter, not sure how well it works) Naturally the Web IDL is not as nearly as sophisticated as TypeScript so it would be nice if they could improve the TS to work as a replacement for Web IDL.
- zxcvbn4038 6y agoI think this shows the necessity for learning instead of learning to look up. In my early days (pre-Google) my peers would only answer a question if they agreed completely with what I was doing and how. I would have to explain what I was working on from the beginning and every design decision and who had approved them and after all that if they didn’t like the project I was working on or thought it should be done a different way then silence. Books could be helpful but they generally lagged the state of the art by 3-5 years at that time. Between the two it made it very difficult to do anything cutting edge, so I made it my goal to learn as much as possible so that I would never again be limited in what I could do by others. Through the decades this has paid off immensely. Today I do “cheat” and look at Stack Overflow and Google pretty frequently, but if the internet goes out or I’m asked to give an impromptu explanation or overview of something in a meeting, I can carry on and speak with authority.
- TeMPOraL 6y agoUsing documentation is fine. You aren't going to solder stuff only by eyeballing the component packaging either. On-line information? That's another question entirely. This would be a more interesting test: can you make a basic webapp (or other type of app representative of your experience) without Internet access? If you're dealing with an older stack and toolkit, you probably have many books' worth of manuals already installed. Unless you're unlucky and didn't notice the documentation isn't installing along with your tools. Or you're on Windows[0]. You can use them to work out most of the problems you're facing. Newer tools though? There's this annoying trend of under-documenting things, and relying on people on StackOverflow to fill in the gaps. Or even worse, setting up a Slack/Discord for the project, and getting people to help each other there. Maybe I'm just old, but when I'm working with computer tools, I prefer to solve the issues myself, instead of chasing around the Internet and talking to people. I also like to be able to continue to work when my Internet dies, or I'm out of range, or the site hosting the docs dies (happens more often than one would expect). And to answer my own question: yes, I can write basic apps of the type I work on (and bunch of others, including games) without Internet access, as long as you let me use my computer - where I have access to heaps of off-line documentation and lots of prior source code to supplement it. -- [0] - Someone at MS had the bright idea to ship PowerShell without help for its commands by default, so that the first thing Get-Help tells you is to download the man pages...
- deleted 6y ago[deleted]
- pharmakom 6y agoI take a completely opposite view. If I get stuck on something, I go straight to StackOverflow etc to ask for a solution or at least get more information. Then, I can keep tinkering myself or switch to a completely different task. I am far more productive when I leverage The Hive Mind. Plus, these questions give me a great reference for next year when I am doing something similar but have forgotten the details. This approach probably works well because I know how things work at a high level; I think it would be disastrous to do this without any real understanding.
- 6y ago
- bilinguliar 6y agoI have identified this issue during whiteboard interviews. I was not able to write code on a blank piece of paper/plastic. It turns out I have delegated part of the coding activities to tools like IDE and Google. I made a conscious decision to fix this. I have switched from Java to Go, effectively lowering the level of abstraction. Then from IDE to Vim, getting rid of autocomplete. I turned off syntax highlighting, allowing my brain to parse and interpret code more effectively. Last but not least was starting to use embedded documentation `go doc {{ package }}` via terminal and reading language sources to learn how internals work. It was hard at the beginning, and my productivity dropped for some time. Later, when new neural connections were created in my brain, things started to improve. Some of the benefits that I enjoy now are a better understanding of the code, improved knowledge of language libraries and interfaces. I have tested this approach by coding in planes and trains without access to the Internet, and it works well. Did it fix my problem with whiteboards? I do not know, but I am happy with the new skills.
- erwinh 6y agonpx create-react-app mybasicwebapp & done Appologies for the shitpost but found the blog post a bit low effort as well.
- hamburglar 6y agoIt is utterly bizarre to me that not only are the answers almost universally “no, I couldn’t” but also, “no, and it’a totally ridiculous to expect anyone to be able to.” I make myself do it occasionally just to make sure I’m not getting too lazy about paying attention to details. I can build a basic web site in both golang and nodejs, from scratch, using a plain editor with no autocomplete. It’s actually a very good feeling. I can even do a react app from scratch if we aren’t counting webpack config. My last proof of concept project at work, the server side was running behind so I spit out an extremely basic but totally functional node server and frontend in an afternoon without using any fancy frameworks and the Java dude was still trying to build the same thing three days after the demo was done. It’s pretty useful to just be able to write it straight from your keyboard without having to go googling a bunch of stuff. Why is everyone acting like it’s impossible or unreasonable?
- the_cat_kittles 6y agojust read the source code of your libraries! remembering all the web apis and such might be difficult though.
- lordnacho 6y agoIf you can, the app is too simple. The soft-ness of software means you always have a lot of choices about how to do things, and those things are a very deep tree. Knowing one specific solution is generally not that useful, because softness is about malleability. The real skill is understanding what you're making. What are the constraints, and of those which are hard to satisfy? Which choices are binding once committed? Everything else is fill-in-gaps, or choose a sane default: "Page needs my corporate background color, can't remember the CSS for it. I need a DB, let's go with pg. I need to make sure passwords are done sanely, let's double check the django docs. For some reason I keep getting an error with the page, let's google it." It's also a skill to recognize when you have to backtrack on your choices. Maybe you missed the bit where it says "don't use this lib multithreaded" and you have to find another. With some experience your backtracking won't take you all the way back to square zero.
- TheNewAndy 6y agoI developed most of my iOS game without internet access (I did it mostly on a train). I actually did this twice - once using a Mac, xCode, swift, and spritekit. Then the exact same app again using a Linux machine, text editor, C, and SDL2. Doing things in C was far better - I just opened up the relevant SDL header files when I needed information, and was able to get basically everything non-iOS specific up and running without any internet. I definitely drew on a fair bit of experience and hunches (e.g. writing audio synthesizers from scratch often involves picking a bunch of magic numbers, and if you pick them wrong it can sound completely awful). Now I have a mac laptop again, I still would lean towards C+SDL2 over swift+SpriteKit (though I do continue to experiment).
- pmlnr 6y agoYes, I can. But I need to use the stuff I wrote with googling in the past ~20 years.
- tomaszs 6y agoGreat article. In fact the same conclusion brought me to create Assistant extension for Visual Studio Code. It allows you to document your know-how and display it in the source code while you are writing it. It is not only great for technical knowledge but also for project know how. Also it does not require know how to be introduced to the source code, it is stored separately. It increased my productivity by 30% because I am not distracted by googling answers again and again. It is a free extension, so try it out: https://marketplace.visualstudio.com/items?itemName=tomasz-smykowski.assistant&ssr=false#review-details https://marketplace.visualstudio.com/items?itemName=tomasz-s...
- deleted 6y ago[deleted]
- IvanK_net 6y agoLet me give you an example: I often search the internet for the ASCII table. I don't think it's a fault, that I do not remember it. Even if I had it stored in my computer, opening it from a computer would not be as fast as looking it up online. Another example: the setTimeout(a,b) in Javascript has two parameters: the time delay and the function to call. I never remember which one is the first, so I look it up every time. I can type without looking at the keyboard. But I believe there can be great programmers, who need to look at the keyboard when they type.
- globular-toast 6y agoI thought this was going to be more interesting. There's an important distinction between consulting online documentation and googling for "how do I do this very specific thing?" Of course you can't build an app without consulting documentation. Why do you think references even exist? Nobody can store all the knowledge in their head. But doing it without the very specific questions (ie. Stackoverflow), that's a different question. This should be possible imo. But in my experience it is increasingly not possible. Many, many so-called engineers reach for this as their primary source of information these days.
- Toutouxc 6y agoAfter two years of doing Rails I still regularly have to look up methods like 'select' on an array / active record collection, the various group, group_by, find, find_by, max, max_by, tally, partition and loads of different Ruby or ActiveSupport methods, the routing DSL, migration-related methods...
- gampleman 6y agoI suspect this has to do with the level of integration of the piece of tooling. I used to write Rails apps many years ago (before SPA was a thing). I realised at some point that I had memorised all the methods of both Ruby and Rails by that point. Yes, there were certainly edge case tasks where one was using a new library (auth comes to mind) where heavy googling was necessary, but there was virtually none for the day to day stuff. React on the other hand never got there for me. I suspect that it’s the many libraries awkwardly glued together (ugh react-redux), with often complex APIs that makes it difficult.
- feliyur 6y agoI rarely do google at all - DuckDuckGo is usually more than enough. Seriously, web search is usually the most efficient way to find documentation. This also works for finding math definitions / formulae (usually on Wikipedia) instead of skimming through books. In all, consulting literature sounds legit, and web search is usually the fastest way.
- ikt 6y agoGlad someone else noticed, after using Duckduck for around 2 to 3 years now seeing someone Google something seems really archaic.
- deleted 6y ago[deleted]
- continuational 6y agoThis is mostly a property of your choice of framework. Many contemporary frameworks come with a project generator, because setting up a basic project is so tedious that it has to be automated. All these files are configurable, and likely the default configuration is insufficient for your goals. You're starting out with a bunch of technical debt. It's no wonder if we have to consult online resources to get anywhere.
- blablabla123 6y agoAs others pointed out, it doesn't matter in a professional setting since everything tends to be very well organized. But I realized when I work on solo projects, it helps a lot to be fluent with the tools I use. Because when I have an idea, I think it's better to implement it swiftly, otherwise the enthusiasm fades :-)
- nottorp 6y agoI probably can't start an app for any framework without googling. Except basic console apps. Thing is, you don't start apps every day. In some jobs, not even every year. Whatever's initial setup and not related to the actual functionality you're working on will fade from your mind, and that's good. You can concentrate on the thing you're trying to do then. I do miss offline documentation though.
- brailsafe 6y agoDash app for mac is great for offline docs
- etlandis 6y agoWell you'd have to download them, but Mac: Dash (https://kapeli.com/dash https://kapeli.com/dash) Mac/Linux/Windows: Zeal (https://zealdocs.org/ https://zealdocs.org/) Windows: Velocity (https://velocity.silverlakesoftware.com/ https://velocity.silverlakesoftware.com/) all support a healthy amount of documentation that you can download and most importantly a very healthy amount of integrations from Vim (https://github.com/KabbAmine/zeavim.vim https://github.com/KabbAmine/zeavim.vim) to VSCode (https://github.com/deerawan/vscode-dash https://github.com/deerawan/vscode-dash) - note that on Windows all these apps write to the registry as "Zeal" so remember to uninstall the previous one if you're switching between them and using an integration. If you just need a searchable docset that can be made available offline, there's also DevDocs (https://devdocs.io/ https://devdocs.io/) - just note that downloaded documentation can disappear if you regularly use the same browser for normal internet use - I'd do things like grab a copy of ungoogled chromium and just use it for this site before traveling if you're gonna be offline for a while (alternatively, there's some electron versions out there and you could package it that way for yourself too)
- GuB-42 6y agoAn interesting approach would be try to code something with only the official documentation and source code of the libraries your are using. No internet except for the git clone. I like doing that as an exercise. It trains you well for a very common situation for professional developers. You have to work on a project, poorly documented, the original developers left long ago and no one really knows how it works, except maybe for one guy who don't have time to answer your questions. Of course it is internal stuff, so the internet is no help. It is a valuable skill, literally, companies are ready to pay good money to people who can do that.
- stonekyx 6y ago> It is a valuable skill, literally, companies are ready to pay good money to people who can do that. I totally agree that it's a very valuable skill, but just wondering, how would you demonstrate that skill in an interview? I personally find it pretty hard to demonstrate these "soft" skills, and even when I act as an interviewer in those rare cases, I find it hard to tell if a person is equipped with such skills.
- withinboredom 6y agoI once had a side-gig where I advertised auditing out-sourced coding. Basically hundred-k loc reviews. It was fun, but word got around that I was good at it (uncovered security issues, reduced costs by finding things that could be optimized, etc). It’s on my resume, and that’s how interviewers know I can do the job. I can tell “war stories” about the code I reviewed, how I handled engineers that tried to obfuscate the code, etc.
- sys_64738 6y agoHe thing about web development I found is that how most new users try todo something is inevitably insecure, inefficient, or whatever. It’s too complex to memorize all the steps and there’s invariably a module for what you need. Most people have a time crunch so don’t have cycles to write from scratch. If somebody has done what you’re trying to do, and that’s usually the norm, then google will get you to a solution faster. It’s never feels like you do any of your own work at the end of the day as you’re opting and pasting mostly.
- withinboredom 6y agoReminds me of earlier this week when I wrote an algorithm from memory. My coworker pointed out a library we had that did the same thing. Sometimes, knowing things by heart isn’t the best.
- JustSomeNobody 6y agoIt's okay to look up documentation because you forgot something. But if you have to copy swaths of code, that's not okay[0]. [0] In the "company X is paying me 6 figures / year to code" sense. If you're a hobby coder, do whatever makes you happy.
- avereveard 6y agoWell not using node.js, but with Java and a modern ide with autocompletion I can definitely do it; as a matter of fact that was the normal way we worked for a long while, and it's still probably the reason why today I steer clear of framework with too many undocumented corner cases or with too wide a surface to understand it all. Without documentation and autocompletion tho it would be a messy process of trial and error, I wouldn't even call it programming, albeit I've done it in the past, with the PHP toolchain of old. Hated every minute of it tho.
- trollski 6y agowhat about bing?
- fractalf 6y agoSure I just _duck_ it ;p
- mensetmanusman 6y agoIf the search part of the internet disappeared I would do very poorly in my current role, and I’m a scientist...
- lacerus 6y agoUsing Rails with offline documentation for the gems I use and the rails guides in Dash.app, I can, yes. As long as I don‘t run into any brand new problems after a version upgrade. As soon as I use JavaScript/TypeScript and Vue, no way.
- ybitbyte 6y agouse duckduckgo
- WaldoLydecker 6y agoLawyers aren’t expected to memorize all (if very much at all) of statute law. Doctors prescribe using a computer-system that autocompletes and checks for pharmaceutical interactions. This is no different.