User:Martyav

A humble editor.

Contributions

= Proposal =

Experience with this community
I joined MediaWiki this October, shortly after being approved by Outreachy. Like many, I've spent a lot of time on Wikipedia, am broadly familiar with Wiki markup, and know about the Foundation's mission of providing free and open source information to people around the world.

Experience with other OS communities
I am a sometime contributor to the Github repo for Renegade Coder's Sample Programs in Every Language Project. I've submitted two such programs in Swift, and written about Swift's distinct features, using the sample code as a guide. I've also worked on several small teams with my friends and classmates during hackathons, provided tutoring materials on my Github repo, and mentored kids as part of the Hip Hop Hacktivist event last July (this included a small repo with unfinished work). In the spring, I apprenticed at Microsoft, and was part of an internal community that used Github to collaborate. I am pretty familiar with Github basics and how to follow a style guide, though I've mostly confined myself to small communities or worked with known people, to avoid folks who get a little too aggressive or dismissive when they're online.

Projects
https://github.com/martyav/sample-programs

The above repo was my first time participating in a large project with strangers, for reasons other than work. I created a code sample for reversing a string in Swift, and also made a thorough article describing Swift's unique language features (https://therenegadecoder.com/code/reverse-a-string-in-swift/). I more recently submitted a code sample for Fizzbuzz in Swift, and am working on a draft for the accompanying article. I think this project is the one most similar to MediaWiki's doc project, even if it is in another language, because it involves writing sample code and explaining it to an audience that may or may not have a lot of background knowledge.

https://github.com/martyav/drawing-pad

This is my most recent project, and my most major piece with Javascript. It's taught me a lot about the DOM, and how to create a web app, without necessarily being dependent on a framework such as jQuery or React. I think any web apps submitted should rely very little on dependencies, to keep them small and evergreen.

https://github.com/martyav/git-CLI-cheat-sheet

A repo I created for students at my bootcamp, describing Git vocabulary and commands in plain language. I tutored at my bootcamp last year, and many people had trouble understanding Git. I recently updated it with corrections, for the current class.

https://github.com/martyav/nibPractice

I created this repo while still a student at my bootcamp. A lot of people were having trouble with .nibs (a kin of visual layout file for iOS apps), so I took some screenshots and created a repo with a sample project inside, demonstrating how to successfully use them. I was very careful to describe any pitfalls they might run into while navigating the GUI to wire up their layout.

https://github.com/martyav/swiftBasics

A Swift playground (kind of like a repl) I created for students at my bootcamp, to teach basic programming concepts in the language.

https://github.com/martyav/ticTacToeHomework

A repo containing a Tic-Tac-Toe demo for students at my bootcamp, with numerous comments describing why things were done a particular way. Intended to teach how to create an iOS app.

https://github.com/martyav/tarotReader

This projected involved creating a REST API from scratch. It taught me a lot about GET requests and parsing JSON. I have a similar project involving MongoDB, which I created as part of a code challenge for a start up. I unfortunately can't disclose the code for that one. Many of my iOS projects involve hitting a REST API.

https://github.com/martyav/AC3.2-weLearn

My capstone project at my bootcamp. It was the longest collaboration I had participated in up until that point. It taught me a lot about project management and working on a team, refactoring, and updating projects to keep them current.

https://github.com/martyav/algoReview/tree/master/pythonSolutions

This is really the only example I have of working with Python. Python was my intro to programming...but I didn't get active on Github until after I started learning Swift, and I never knew enough Python to build anything major with it. I did make a silly command line utility to roll dice for a D&D warlock, but I never hosted the code on Github, and it is now forever lost.

Timeline
I am currently working on documentation for the Images API. I also recently started a small web demo for the API, which would search a user-submitted page and present images on it as a list. Many beginner programing classes task students with hitting an API and presenting the parsed JSON as a list or tableview, so such an app would be of educational value. I would wish to continue working on this API doc, and if possible, on documentation for related pages, as well as extending the app to allow users to search using different parameters (different return formats, different kinds of files, etc.). I am not as familiar with Python as other languages, so I would need some ramp-up time to refamiliarize myself (it was my first language, way back in 2015) and to learn how to use Flask.

Rough estimate:

Rough estimate:
 * 80 hours (2 weeks) practising intensively with Flask and Python, to get comfortable
 * 40 to 80 hours per week on rewriting subsequent articles (5 to 10)
 * 50 hours per demo, concurrent with Python/article work related to that demo

I had some extra difficulty with my first article due to having to get comfortable with the platform, receive feedback, and explore sample articles. API:Images was initially quite short, as well. I wound up taking 3 weeks. I give an outside estimate of 80 per article in case I run into a very complex API that needs a lot of fixing, but most would take me a shorter amount. I would guess that a simple, well-formatted article would only take 4 hours at most, but I am also guessing that most articles would require some degree of research and that most of the work would go into the sample code.