Skip to content

Instantly share code, notes, and snippets.

@katiebuilds
Created March 12, 2015 13:19
Show Gist options
  • Save katiebuilds/d1dd4f05ff2fd591d079 to your computer and use it in GitHub Desktop.
Save katiebuilds/d1dd4f05ff2fd591d079 to your computer and use it in GitHub Desktop.
Detailed Development Questions
Would you rather use RubyMine, vim, or Sublime Text? Why?
I would rather use RubyMine. So far, I've only used Atom. I feel like Sublime would be very similar to Atom, so if I was going to go through the process of acclimating to a different editor, I'd like to try RubyMine to see if all of its additional functionality is helpful or bothersome. (If I didn't have much time, I'd probably go with Sublime). I feel like there is a learning curve with vim, as far as remembering all the keyboard commands, and I'd rather save that challenge for when I'm more comfortable with code in general.
What is the difference between an INNER JOIN and a LEFT JOIN?
Hmm...SQL commands...I don't remember!
Which of these behaviors in a Rails app would require JavaScript? (you can pick more than one)
Scrolling down to a different part of the page (smoothly) when you click on a link in a menu. JAVASCRIPT
Making the color of a background change over time. JAVASCRIPT
Adding a new text field to a page when the user clicks an "Add Option" button. PROBABLY JAVASCRIPT
Showing a popup asking you if you are sure that you want to delete that record. NOPE
Which of these behaviors in a Rails app would require AJAX? (you can pick more than one)
Showing an "Other" text field when the user selects the "Other" radio button from a list of options. AJAX
Displaying a chat window on a website in which two users can talk with each other live. UNCERTAIN...YOU DEFINITELY DON'T WANT THE WHOLE PAGE REFRESHING EVERY TIME YOU TYPE, BUT IDK IF AJAX CAN DO THIS, OR IF IT'S SOMETHING ELSE
Marking emails as spam on a list page and having them disappear. AJAX
Having a clock on the page which updates automatically as time passes. PROBABLY AJAX
Big Picture Questions
Should all developers in a group of 15 be required to use the same programming tools? For instance, should they use the same editors? Should they use the same testing tools (e.g. MiniTest, RSpec, Capybara, etc)? Should the company have a standard set of gems which are allowed to go into projects?
I don't think so...15 is a fairly large team, and forcing everyone to conform exactly to certain specifications may inhibit productivity. That said, if everyone was using vastly different things, it would waste a lot of time. I think something like which editor one uses should be left up to personal choice. Testing tools should be limited to the set that everyone is at least basically familiar with, so that on shared projects, people aren't totally stuck. As far as standard gems, I haven't heard of limiting gems...it might make sense if someone has packed their project so full of crazy gems that other people can't tell how it works, but probably that wouldn't be an issue most of the time. What may be an issue is if someone chooses a gem that is not well-maintained, and it breaks the project later down the road when it can't be updated with everything else. Although for this, probably everyone just using good judgment about what gems they choose would be enough.
What do you think about having a development team in which everyone works remotely?
This might work for a team of experienced developers, but I wouldn't want to work there. On one hand, not having to commute is nice, and I have read that people are often more productive at home, when they are in control of their environment. On the other hand, it is often far more efficient to have a short conversation than to swap a pile of chat messages or chain of emails back and forth. Being in the same physical space with your team naturally helps you bond and connect with them on a personal level. While you don't have to be best friends with your teammates (and that would probably be a bad idea), I think being able to have a human presence there makes you a lot more willing to help each other out than just knowing each other through screens.
@katiebuilds
Copy link
Author

&&
afraid to become reliant on all of rubymine's features, tricky to pair with people

&&
id goes to a foreign key
LEFT JOIN INNER JOIN

people
1 Mason
2 Rocky
3 Mae
4 Katie
5 Christen

phones person_id
1 555-1234 1
2 333-1234 1
3 444-1234 3
4 222-1234 3
5 111-1234 nil

inner join, 4 records, there have to be things that match on both sides of an inner join
(people LEFT JOIN phones) left join, 7 records, one record per person plus one extra for each person with 2 phone numbers
left outer join = left join
inner join = join

phones LEFT JOIN people, 5 records ON people.id = phones.person_id on clause, order matters less

&&&&&&
background color changes over time, doesn't need javascript, actually uses fancy fancy CSS
text field add option, YES JAVASCRIPT

&&&&&&&&
ajax is when you send data to the server, and the page changes, but you're not reloading the page. all of the options are javascript...but do you need to go to the server to get or change more info?
other field, no ajax
chat window, basically yes, although there are fancy other things...web sockets between computers
delete email, yes ajax, page didn't refresh but also deleting it from the database
perpetual clock, no ajax, just start it with js and let it go, or css3 if you need more precision, then yes, if you keep updating it

all use same editor 2
same test suite 13.5 at least per project/codebase minitest, rspec, capybara, cucumber all in one thingy is bad
standard gems 6.5

possibly gem approval test
licensing requirements...cleanroom client
security/stability requirements lockdowns on medical device apps
or specific to a purpose, like, "for files, we use paperclip" but for other things, free reign

every tool that you use will shape the way you develop, so just be cognizant of the consequences of what you're using

maybe remotely some of the time
people with ability issues or have kids or whatnot
with frequent check-ins on go-to meeting
tools where you constantly screencast to your company...more structure

some places: trust, they just totally trust until proven wrong
others are always watching, frequent check-ins, don't trust
mason in the middle...accountability is just true. motivated driven guy, but by himself, more likely to procrastinate, just human....management = setting expectations, not micromanaging, but not ignoring

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment