[00:00] (0.04s)
today we're talking about Things I Hate
[00:01] (1.92s)
About programming yeah look I'll be
[00:03] (3.72s)
honest with you I don't have too much
[00:05] (5.08s)
experience programming I'm still a
[00:06] (6.80s)
newborn child in this field but I've
[00:08] (8.68s)
still experienced some problems okay I'm
[00:10] (10.56s)
hoping these problems will go away with
[00:12] (12.08s)
more experience but based off tweets and
[00:13] (13.84s)
videos from more experienced developers
[00:15] (15.60s)
and you can't create the button because
[00:17] (17.88s)
Bill is on it sounds like these problems
[00:20] (20.56s)
are going to get a lot worse so uh one
[00:22] (22.76s)
documentation the thing developers both
[00:24] (24.88s)
love and hate documentation is kind of
[00:27] (27.08s)
like how I feel about caffeine I hate it
[00:29] (29.08s)
but I need it to function now obviously
[00:30] (30.96s)
I'm not talking about useful
[00:32] (32.28s)
documentation that does what it's
[00:33] (33.68s)
supposed to do you know making my life
[00:35] (35.36s)
easier and making me feel like an
[00:36] (36.92s)
absolute genius because they know how
[00:38] (38.64s)
dumb and incompetent I am and writes
[00:40] (40.28s)
everything down step by step no no no no
[00:42] (42.12s)
I love that type of documentation here's
[00:43] (43.92s)
some documentations I like oh camel oh
[00:46] (46.08s)
camel mentioned let's go rust stripe
[00:48] (48.68s)
View and there's a lot more if you're an
[00:50] (50.32s)
engineer or an open source contributor
[00:52] (52.08s)
that helps with documentation I just
[00:53] (53.56s)
want you to know I love you all
[00:55] (55.12s)
developers love you we don't appreciate
[00:56] (56.96s)
you enough without all of you technology
[00:59] (59.08s)
would never be the Advance we'd still be
[01:01] (61.00s)
eating rocks now unfortunately not all
[01:03] (63.28s)
documentation is good we call those the
[01:05] (65.64s)
documentations of Agony and despair
[01:08] (68.24s)
documentations that are outdated that
[01:10] (70.20s)
leave you with more questions and
[01:11] (71.60s)
answers or documentations where it's
[01:13] (73.36s)
just the code itself with comments I
[01:15] (75.36s)
understand that reading documentation is
[01:16] (76.72s)
a skill that you have to develop
[01:18] (78.20s)
documentation back then used to be a lot
[01:19] (79.88s)
worse I can't imagine what that used to
[01:21] (81.68s)
be like but that's like saying we
[01:23] (83.00s)
upgraded from getting stabbed to getting
[01:24] (84.88s)
punched technically it's better but we
[01:26] (86.72s)
can still do better here let me give you
[01:28] (88.32s)
an example of a documentation that gives
[01:30] (90.32s)
me the pain and the agony Google number
[01:32] (92.68s)
1.1 Google's terrible documentation yes
[01:36] (96.04s)
Google you know the tech company that's
[01:37] (97.88s)
worth over $2 trillion and has thousands
[01:40] (100.16s)
of developers that get paid High
[01:41] (101.44s)
salaries the one with fun company perks
[01:43] (103.56s)
the ones that rejected my resume take a
[01:45] (105.20s)
look at this documentation for their
[01:46] (106.56s)
Gmail API let's check out the quick
[01:48] (108.32s)
start enable the API seems reasonable
[01:50] (110.72s)
configure ooth consent okay authorize
[01:53] (113.16s)
credentials for the app all right create
[01:55] (115.00s)
an API key we're getting somewhere I
[01:56] (116.92s)
think set up the sample okay what's the
[02:01] (121.16s)
what is this where's the syntax
[02:02] (122.92s)
highlighting why do others have it and
[02:04] (124.72s)
others don't oh it's an edge case
[02:06] (126.48s)
because this is HTML no no no no shut up
[02:08] (128.80s)
their interview process literally tests
[02:10] (130.76s)
you on problems where you have to handle
[02:12] (132.52s)
edge cases I don't want to hear any
[02:14] (134.16s)
complaints look I know this isn't a big
[02:15] (135.92s)
deal I mean some people use to program a
[02:17] (137.72s)
notepad actually I think some people
[02:19] (139.24s)
still do but remember this is Google
[02:21] (141.48s)
we're talking about now here's the
[02:22] (142.64s)
interesting part most of the code here
[02:24] (144.20s)
is to sign in and sign out with Google
[02:26] (146.24s)
which makes sense to be fair but this is
[02:28] (148.40s)
the actual code that uses Gmail you know
[02:30] (150.36s)
the whole reason I'm here why didn't
[02:32] (152.16s)
they do this in steps and then give me
[02:34] (154.16s)
the entire sample code you know Step One
[02:36] (156.24s)
enable sign in and sign out step to
[02:38] (158.24s)
Gmail and then at the end the entire
[02:39] (159.96s)
code that they have here I feel like
[02:41] (161.36s)
that makes a lot more sense whatever I'm
[02:43] (163.08s)
probably just stupid it's fine number
[02:44] (164.60s)
two Jo let's talk about
[02:47] (167.28s)
debugging or as I like to call it
[02:49] (169.32s)
console.log driven development oh wait
[02:51] (171.24s)
some of you don't use JavaScript more
[02:52] (172.64s)
like print driven development oh wait
[02:54] (174.12s)
you don't use Python either ah more like
[02:56] (176.12s)
SE out driven I hate bugs actual bugs
[02:58] (178.72s)
and software bugs cuz it's literal proof
[03:01] (181.04s)
that you can't code and you did
[03:02] (182.52s)
something wrong and debugging is the
[03:04] (184.44s)
process of you fixing your terrible code
[03:06] (186.60s)
it's not fun debugging always starts
[03:08] (188.24s)
slow I don't know about most of you but
[03:09] (189.84s)
whenever I code with python or
[03:11] (191.12s)
JavaScript I always just log everything
[03:13] (193.08s)
out to debug I don't really do break
[03:14] (194.88s)
points or anything like that unless it's
[03:16] (196.40s)
something really crazy or if it's a
[03:18] (198.20s)
language like C++ where you have to
[03:19] (199.84s)
compile and build the app or if you
[03:21] (201.40s)
really hate yourself assembly but for
[03:23] (203.48s)
python or JavaScript or really any small
[03:25] (205.76s)
program I just put a log wherever I
[03:27] (207.64s)
think it's broken and if that log didn't
[03:29] (209.32s)
do anything then I would just Spam them
[03:31] (211.04s)
everywhere and it works all right I know
[03:33] (213.04s)
it's not just me who does this you
[03:34] (214.44s)
probably do it too don't look at me like
[03:36] (216.04s)
that we both can't C but sometimes
[03:37] (217.92s)
there's errors you don't expect and when
[03:40] (220.00s)
that happens you think your programming
[03:41] (221.44s)
language would come to save you and give
[03:42] (222.80s)
you some helpful error message I mean
[03:44] (224.40s)
you'll get an error message but you're
[03:46] (226.20s)
going to get blessed by something like
[03:47] (227.48s)
this yeah what am I supposed to do
[03:48] (228.84s)
number three bug reports if you ever
[03:50] (230.80s)
make your project public and you have
[03:52] (232.52s)
people using your bad code then you'll
[03:54] (234.28s)
probably have the pleasure of dealing
[03:55] (235.88s)
with bug reports woo website's broken
[03:58] (238.24s)
that's the entire report you ask them
[03:59] (239.88s)
what's broken the thing which thing you
[04:01] (241.92s)
know the thing that does stuff oh yeah
[04:03] (243.88s)
the thing that does stuff that narrows
[04:05] (245.64s)
it down to absolutely nothing you know
[04:07] (247.68s)
it's like going to the doctor and
[04:09] (249.00s)
telling them I don't feel good but you
[04:10] (250.48s)
don't tell them any symptoms what are
[04:11] (251.88s)
they going to do which is why I always
[04:13] (253.32s)
thought it would be amazing if we had a
[04:15] (255.40s)
tool that would make bug reporting
[04:17] (257.32s)
easier like imagine if you could show a
[04:19] (259.36s)
recording of the bug you had and it
[04:20] (260.96s)
would record not only the error but also
[04:23] (263.00s)
the console logs the network requests
[04:25] (265.28s)
every step the user did all the
[04:27] (267.00s)
technical details everything and if you
[04:28] (268.76s)
didn't know how to explain it it then AI
[04:30] (270.48s)
would help you write a useful bug report
[04:32] (272.16s)
so developers can actually understand it
[04:34] (274.44s)
and fix it well guess what you don't
[04:35] (275.96s)
have to imagine it anymore with Jam the
[04:38] (278.12s)
sponsor of today's video oh you sneaky
[04:40] (280.44s)
if you've ever wasted hours trying to
[04:42] (282.24s)
understand a vague bug report you're
[04:43] (283.48s)
going to love this one Jam is a browser
[04:45] (285.24s)
extension that allows you to create the
[04:46] (286.84s)
perfect bug report here's how it works
[04:48] (288.56s)
when someone finds a bug they select the
[04:50] (290.20s)
Jam browser extension they can take a
[04:51] (291.92s)
screenshot record a video or capture an
[04:54] (294.00s)
instant replay of what just happened
[04:55] (295.48s)
once Jam records everything it'll
[04:57] (297.16s)
instantly generate a link to share with
[04:58] (298.72s)
your team but Jam does doesn't just
[05:00] (300.08s)
record the screen it captures everything
[05:02] (302.00s)
a developer actually needs browser and
[05:03] (303.76s)
device information console logs Network
[05:06] (306.04s)
requests everything you need to fix the
[05:07] (307.68s)
bug but it gets better you can use AI to
[05:09] (309.76s)
write up the entire bug report so you
[05:11] (311.64s)
don't have to as soon as you record a
[05:13] (313.28s)
bug AI will write a clear description of
[05:15] (315.24s)
the issue and a list of steps to
[05:16] (316.60s)
reproduce the bug and since it has all
[05:18] (318.32s)
the information a developer needs it can
[05:20] (320.16s)
even suggest a potential fix it's like
[05:22] (322.04s)
having an expert Qi engineer on your
[05:23] (323.88s)
team who speaks perfect developer Jam
[05:25] (325.84s)
also integrates with all your tools too
[05:27] (327.44s)
jira GitHub linear no [ __ ] slack
[05:30] (330.40s)
whatever you use to track bugs so
[05:32] (332.04s)
instead of having these types of bug
[05:33] (333.32s)
reports you get this perfect bug reports
[05:36] (336.00s)
every time so if you want to stop
[05:37] (337.44s)
wasting time with vague bug reports you
[05:39] (339.16s)
can try Jam for free by clicking the
[05:40] (340.76s)
link in the description number 1.2
[05:42] (342.80s)
Google's documentation again I'm not
[05:44] (344.80s)
done with Google let's take a look at
[05:46] (346.08s)
how to do specific things like sending
[05:47] (347.40s)
an email let's check this out now
[05:49] (349.04s)
remember I did the JavaScript quick
[05:51] (351.20s)
start so let's see how I can send emails
[05:52] (352.96s)
with JavaScript wait a minute there's no
[05:55] (355.16s)
examples for JavaScript what many
[05:57] (357.08s)
programming languages have libraries or
[05:58] (358.92s)
utilities that simplify the process of
[06:01] (361.12s)
creating and encoding my messages so why
[06:03] (363.56s)
don't you share it you know they exist
[06:05] (365.96s)
where's the resources oh oh oh my
[06:08] (368.20s)
mistake Google the following code
[06:10] (370.08s)
examples demonstrate how to create a my
[06:12] (372.00s)
message using the Google's apis client
[06:14] (374.68s)
libraries for various languages oh of
[06:17] (377.48s)
course you'd share the resources for
[06:19] (379.24s)
your client libraries for various
[06:22] (382.20s)
languages I can't even be that mad about
[06:24] (384.40s)
documentation because you know what I
[06:25] (385.96s)
wouldn't write documentation to my code
[06:27] (387.60s)
either I guess I got to look at the
[06:29] (389.20s)
reference say and figure it out myself
[06:30] (390.80s)
the usual oh look a video about the
[06:32] (392.56s)
Gmail API titled the new Gmail API I
[06:36] (396.08s)
wonder when this video was made the new
[06:38] (398.12s)
G 10 years ago what you know I would
[06:41] (401.76s)
understand if it was a smaller company
[06:43] (403.44s)
actually smaller companies do have
[06:45] (405.08s)
better documentation than this
[06:46] (406.32s)
lobotomized trash so what's going on
[06:48] (408.20s)
over there at Google and surprisingly I
[06:50] (410.16s)
know it's not just me who's having this
[06:52] (412.00s)
problem there's tons of people who
[06:53] (413.32s)
complain about Google's documentation
[06:55] (415.12s)
it's so bad that people need to create
[06:57] (417.04s)
packages to prevent people from
[06:58] (418.52s)
suffering and reading that piece of gar
[07:00] (420.40s)
number four inconsistent naming all
[07:03] (423.48s)
right look let me tell you this I didn't
[07:05] (425.16s)
even know this was a problem until I
[07:06] (426.76s)
started using different programming
[07:08] (428.20s)
languages but mainly when I started
[07:09] (429.76s)
reading other people's code I never
[07:11] (431.44s)
realized how inconsistent naming is
[07:13] (433.68s)
let's start with file names I mean how
[07:15] (435.44s)
hard can it be to name a file here take
[07:17] (437.20s)
a look at this you see the difference in
[07:18] (438.52s)
each of these right Apparently one of
[07:19] (439.96s)
these is right I don't know which is
[07:21] (441.36s)
right leave a comment on what you think
[07:22] (442.72s)
is right and it's not just file names
[07:24] (444.32s)
either this also applies for variable
[07:26] (446.08s)
names and you know this wouldn't be such
[07:27] (447.60s)
a problem but every programming langu
[07:29] (449.52s)
language has its own naming preferences
[07:31] (451.68s)
why wouldn't they let me search up the
[07:33] (453.04s)
naming conventions and coding free code
[07:34] (454.76s)
cam okay I know it's a good source let's
[07:36] (456.24s)
take a look at this there's four of them
[07:37] (457.84s)
camel case snake case Kebab case and
[07:40] (460.48s)
Pascal case look at this free code Camp
[07:42] (462.72s)
actually talks about this it's not just
[07:44] (464.04s)
me now based on the language you're
[07:45] (465.64s)
working on and what you're naming the
[07:47] (467.28s)
preferred case type can change wow I
[07:49] (469.48s)
just don't understand how something so
[07:51] (471.36s)
simple like naming could be so hard then
[07:53] (473.52s)
again we just love to over complicate
[07:55] (475.28s)
things I don't know if there's lore
[07:56] (476.56s)
Behind These naming conventions I don't
[07:58] (478.24s)
know it if you know it please leave it
[07:59] (479.96s)
in the comments because I'm not going to
[08:01] (481.20s)
search that up myself I would not be
[08:02] (482.88s)
surprised if there isn't any lore behind
[08:04] (484.88s)
this and it's just opinion I mean
[08:06] (486.44s)
there's a whole debate between tabs and
[08:08] (488.16s)
spaces actually that one I do understand
[08:10] (490.08s)
I'm more of a tab person if you prefer
[08:11] (491.72s)
using spaces you need to go to the
[08:13] (493.56s)
mental Asylum I don't know what to
[08:15] (495.00s)
number five VM I just hate Vim number
[08:17] (497.44s)
six C++ I don't like C++ that's it
[08:20] (500.48s)
number seven the coding sloth wait what
[08:22] (502.60s)
you know I sure hate this coding sloth
[08:24] (504.48s)
guy he just makes YouTube videos on
[08:26] (506.08s)
stupid stuff I bet he can't even code
[08:27] (507.88s)
and then take a look at his stupid sloth
[08:29] (509.24s)
character character this thing's ugly
[08:30] (510.60s)
why would anyone watch number eight
[08:32] (512.16s)
sloth bites not only do I hate the
[08:34] (514.08s)
coding sloth I also hate his stupid
[08:35] (515.96s)
newsletter sloth bites it's a newsletter
[08:38] (518.04s)
where he shares bite-sized programming
[08:39] (519.60s)
information every week to make you a
[08:41] (521.04s)
better programmer all you have to do is
[08:42] (522.52s)
enter your email and you just get free
[08:44] (524.04s)
information you know the content is good
[08:45] (525.96s)
but I just hate it because I hate him if
[08:47] (527.56s)
you didn't know that was an
[08:48] (528.48s)
advertisement go check out sloth bites
[08:50] (530.36s)
please number nine other programmers I
[08:52] (532.56s)
don't even like myself why would I like
[08:54] (534.08s)
other programmers number 1.3 I have
[08:56] (536.72s)
problems with Google here's a funny
[08:58] (538.32s)
thing the quality of Google's
[08:59] (539.80s)
documentation depends on what you're
[09:01] (541.48s)
using let's take a look at their ads API
[09:03] (543.44s)
you know a service that makes them a lot
[09:04] (544.88s)
of money because it's ads wow video
[09:07] (547.64s)
tutorials that aren't 10 years old
[09:09] (549.24s)
step-by-step instructions libraries and
[09:11] (551.52s)
examples look at the languages this
[09:13] (553.12s)
supports they support Pearl Pearl why
[09:16] (556.36s)
can't they do this for all their API and
[09:18] (558.00s)
then take a look at their angular
[09:19] (559.28s)
documentation this is Peak it's gorgeous
[09:22] (562.16s)
it's beautiful this is what I expect
[09:24] (564.20s)
from a$2 trillion yeah so that's some
[09:26] (566.32s)
things I hate about programming you know
[09:27] (567.88s)
a lot of them are just skill issues
[09:29] (569.44s)
there's probably a lot more things I
[09:30] (570.92s)
hate but I'm too lazy to edit so bye